2.2.3 堆栈的链式存储实现
2017-11-05 15:53
323 查看
#include<stdio.h> #include<stdlib.h> typedef int ElementType; typedef struct SNode *Stack; struct SNode { ElementType Data; struct SNode *Next; }; //构建一个堆栈的头结点返回指针 //通过链表不断地申请不断地往里插,不存在数组满不满的问题 Stack CreatStack() { Stack S; S = (Stack)malloc(sizeof(struct SNode)); S->Next = NULL; return S; } //判断函数是否为空,空则返回1 int IsEmenty(Stack S) { return(S->Next == NULL); } //将元素item插入堆栈S void Push(ElementType item, Stack S) { struct SNode *TmpCell; TmpCell = (struct SNode *)malloc(sizeof(struct SNode));//先申请一个节点 TmpCell->Data = item; TmpCell->Next = S->Next; S->Next = TmpCell; } //删除并返回堆栈S的栈顶元素 ElementType Pop(Stack S) { struct SNode *FirstCell; ElementType TopElem; if (IsEmenty(S)) {//要先考虑链表空不空 printf("堆栈空!\n"); return NULL; } else { FirstCell = S->Next; S->Next = FirstCell->Next; TopElem = FirstCell->Data; free(FirstCell); return TopElem; } }
相关文章推荐
- 堆栈的链式存储的C++实现与测试
- 堆栈的链式存储实现
- 数据结构学习之堆栈的链式存储C++实现
- 数据结构:堆栈的链式存储实现
- 堆栈的链式表示和实现
- C++栈的顺序存储和链式存储的实现
- 栈的链式存储结构及C实现
- 数据结构之堆栈的链式存储
- 队列的链式存储及实现
- 【线性表】顺序存储、链式存储的实现及操作
- C语言单链表(线性表的链式存储)的实现
- 数据结构——单向链表的链式存储及实现
- 数据结构复习——线性表的链式存储实现(单向链表)
- 队列- 链式存储-Java实现
- [置顶] 数据结构——队列的链式存储结构以及实现
- 静态链表——用顺序存储实现链式存储功能
- 堆栈之链式实现
- 数据结构与算 5:C++ 顺序/链式存储,栈 模板类实现,编译模板类问题解决
- Thinking in Java 泛型章节中不用LinkedList来实现自己的内部链式存储机制
- 线性表的链式存储和实现