typedef struct NODE
{
int val;
struct NODE *next;
}node;//define node
node * head=NULL;//init head_node of stack
//create node
node *create_node(int val)
{
node *p=(node *)malloc(sizeof(node));
p->val=val;
p->next=NULL;
return p;
}
//push 头插法
node *push(int val)
{
node *p=create_node(val);
p->next=head;
head=p;
return head;
}
//peek
int peek(node *link)
{
if(length_stack(link)==0)
{
printf("此栈为空");
return 0;
}
return head->val;
}
//calculate length_length
int length_stack(node *link)
{
int count=0;
while(link)
{
count++;
link=link->next;
}
return count;
}
//pop
int pop(node *link)
{
node *p;
p=head;
head=head->next;
free(p);
return p->val;
}
//printf_stack
void print_stack()
{
while(head)
{
printf("%d ",head->val);
head=head->next;
}
}
int main()
{
push(1);
push(2);
push(3);
push(4);
push(5);
peek(head);
int size=length_stack(head);
printf("栈长度为:%d\n",size);
print_stack();
}