我使用这些日期结构实现了堆栈:
typedef struct node{
StackEntry entry;
struct node *next;
}Node;
typedef struct stack{
Node *top;
}Stack;
如何在下面的每个操作中找到BigO?
StackEmpty(Stack * s)
StackSize(Stack * s)
推送(节点* e,堆栈*)
Pop(Node * e,Stack * s)
答案 0 :(得分:1)
时间复杂度
StackEmpty(Stack * s)= O(1)//我们只需要检查top== null
StackSize(Stack * s)= O(n)//如果堆栈包含直到count++
Push(Node * e,Stack * s)= O(1)//只需要一个操作no解释需要这个我认为
Pop(Node * e,Stack * s)= O(1)//只需要一个操作no解释需要这个我认为
Boolean StackEmpty(Stack *s)
{
if(s.Next==null&&s.value==null)
return true; //or 1
else
return false; //or 0
}
int StackSize(Stack *s)
{
if(StackEmpty!=true)
{
count = 0
while(StackEmpty!=true)
{
pop();
Count++;
}
}
return Count;
}