栈的链式存储结构
来源:互联网 发布:机房网络布线 编辑:程序博客网 时间:2024/05/16 02:50
栈顶放在单链表的头部,对于空栈来说,链表原定义是头指针指向空,所以链栈的空其实就是top==NULL的时候。
链栈的结构代码如下:
typedef struct StackNode{int data;struct stackNode *next;}StackNode,*LinkStackPtr;typedef struct LinkStack{LinkStackPtr top;int count;} LinkStack;
链栈的操作大部分被和单链表相似,只是在插入和删除上,特殊一点。
进栈操作
对于链栈的进栈push操作,假设元素值e的新节点是s,top为栈顶指针
statue push(LinkStack *S,int e){LinkStackPtr s=(LinkStackPtr)malloc(sizeof(StackNode));s->data=e;s->next=S->top;//将当前的栈顶元素赋值给新节点的直接后继S->top=s; //将新节点s赋值给栈顶指针S->count++;return OK; }
假设变量p用来存储要删除的栈顶节点,将栈顶指针下移一位,最后释放p即可。
//若栈不空,则删除栈顶元素,用e返回其值,并返回OK Statue pop(LinkStack *S,int *e){LinkStackPtr p;if(StackEmpty(*S)) return error;*e=S->top->data;p=S->top;//将栈顶元素赋值给pS->top=S->top->next;//使得栈顶指针下移一位,指向后一节点。free(p);s->count--;return OK; }
0 0
- 栈的链式存储结构
- 栈的链式存储结构
- 栈的链式存储结构
- 栈的链式存储结构
- 栈的链式存储结构
- 栈的链式存储结构
- 栈的链式存储结构
- 栈的链式存储结构
- 栈的链式存储结构
- 栈 -- 链式存储结构
- Day17、链式存储结构动态分配内存、栈的顺序存储结构和链式存储结构
- 栈的链式存储结构的实现
- 数据结构(栈):栈的链式存储结构
- 栈的链式存储结构与操作
- 栈的链式存储结构与操作
- 基于链式存储结构的栈
- 数据结构四栈的链式存储结构
- 数据结构:栈的链式存储结构
- java开发过程中遇到的csv文件生成和导出
- 云端Mysql数据库query语句过长的问题
- ZooKeeper 客户端操作
- 学习Spring Cloud第六课(将微服务注册到Eureka Server上)
- win7中安装ipython,并设置环境变量
- 栈的链式存储结构
- Vue2+VueRouter2+webpack 构建项目实战(五)配置子路由
- Lisp学习--Windows下面的开发环境搭建
- pow函数,gets输入数字后的处理
- 浅谈对协程的理解
- 学习Spring Cloud第七课(Ribbon的基本使用)
- java注解的使用方法
- java中final与static的使用场景
- 【第十九课】GUI---内部类的使用