栈-链栈
来源:互联网 发布:mac mp4播放器 编辑:程序博客网 时间:2024/05/11 21:51
栈分为静态栈和动态栈,静态栈由数组构建而成。动态栈是由链表构建而成。
栈:后进先出。所有的操作都是在栈顶进行。
总结一下 动态栈。
动态栈由链表构成,所以要定义 链表结构体,栈结构体。链表结构体里有两个元素,一个数据,一个指针。栈结构体也有两个,两个都是指针,指向栈底,指向栈顶。
定义如下:
#include <iostream>#include <string>using namespace std;typedef struct SNode{int data;SNode* p_next;}SNode,*pNode;typedef struct Stack{SNode* pTop;SNode* pBottom;} Stack;void initStack(Stack* );void push(Stack*,int);void traverse(Stack*);int main(){Stack S;initStack(&S);push(&S,3);push(&S,4);push(&S,5);push(&S,6);push(&S,7);traverse(&S);return 0;}void initStack(Stack* pS){SNode* node=(pNode)malloc(sizeof(SNode));pS->pTop=pS->pBottom=node;node->p_next=NULL;if (NULL==pS->pTop){cout << "动态分配内存失败" <<endl;}}void push(Stack* pS,int val){SNode* node=(SNode*)malloc(sizeof(SNode));node->data=val; //入栈分为三步 1 创建新节点 赋值node->p_next=pS->pTop; //2节点连入栈pS->pTop=node; //3栈顶指针指向新节点};void traverse(Stack* pS){SNode* p_node=pS->pTop;while (p_node!=pS->pBottom){cout << p_node->data << " ";p_node=p_node->p_next; //链表遍历}}
0 0
- 栈-链栈
- 栈---链栈
- c++ 顺序栈+链栈
- 顺序栈 链栈
- 06.栈.链栈
- 栈——链栈
- 栈2--链栈
- 顺序栈&链栈
- 栈 —— 链栈
- 栈——链栈
- 栈与队列->栈,链栈
- 栈的Java实现--链栈
- 链栈 - 栈的链式存储
- 实验3.1 顺序栈&链栈
- C 栈(顺序栈 链栈)
- 顺序栈,两栈共享空间,链栈
- 顺序栈,链栈,多栈运算
- 链栈
- Linux mint 17 安装fcitx
- URL学习
- POJ 2032 Square Carpets
- 理解 chroot
- IOS中输入框被软键盘遮挡的解决办法
- 栈-链栈
- hdu 4289 Control(图论-最小割)
- SQL优化学习目录
- Leetcode练习-Binary Tree Inorder Traversal
- 国内七大核心期刊遴选体系、国外三大检索工具
- 网络访问-URLCONNECTION
- POJ 3177——Redundant Paths && POJ3352——Road Construction
- 阿里云面试总结
- 稳定排序和不稳定排序