2008秋-链栈-链式存储结构的栈

/*---------------------------------------------------------
 Title: Link Stack(链栈) 链栈-链式存储结构的栈 
 请先阅读教材67页, 2.3.2,2.3.4节, 栈的定义及基本运算
 (注意以下程序为简化后的,仅供入门学习之用)
----------------------------------------------------------
*/
#include
<stdio.h>
#include
<stdlib.h>
//定义栈的结点结构
struct stacknode
{
   
int data;//存放数据元素
   struct stacknode * next;//指针,指向下一个结点
};
//初始化栈
struct stacknode * InitialStack()
{
 
struct stacknode * head;
 head
=(struct stacknode *)malloc(sizeof(struct stacknode ));
 head
->next=NULL;// 
 return head;
}
//入栈
void PushIntoStack(struct stacknode * head, int value)
{
    
struct stacknode * p;
    p
=(struct stacknode *)malloc(sizeof(struct stacknode ));
    p
->data=value;
    p
->next=head->next;
    head
->next=p;
 }
//出栈
void PopFromStack(struct stacknode * head)
{
 
struct stacknode * p;
 
if(head->next==NULL)
   printf(
"Pop Failed \n");
 
else
    {
    p
=head->next;
     head
->next=p->next;
    free(p);
     }
}
//显示栈中所有元素
void ShowStack(struct stacknode * head)
{
 
struct stacknode * p;
 p
=head->next;
 printf(
"\nShow all elements in stack:\n");
 
while(p != NULL)
 {
  printf(
" %d ",p->data);
  p
=p->next;
 }
}

void main()
{
    
struct stacknode * head1;
    head1
=InitialStack();
    ShowStack(head1);
    PushIntoStack(head1,
11);
    ShowStack(head1);
    PushIntoStack(head1,
22);
    ShowStack(head1);
    PopFromStack(head1);
    ShowStack(head1);
}




posted @   emanlee  阅读(834)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示