动态栈 栈结构的链式实现
来源:互联网 发布:尤里过知乎 编辑:程序博客网 时间:2024/06/05 16:30
用链表形式实现栈结构的实现,栈链式实现可以不受空间的限制,没有栈上限熟练限制,使用更灵活。
#include <iostream>typedef int DataType;enum{OK, ERROR, FAILED};struct Node{DataType data;Node* next;};typedef struct Stack{Node* top;// 栈顶指针动态维护 当top==NULL时空栈int length;// 动态栈数据大小}DStack;// 初始化栈顶指针和数据int InitStack(DStack& stack){stack.top = NULL;stack.length = 0;return OK;}// 入栈 将val压入栈int Push(DStack& stack, DataType val){Node* tmp = (Node*) malloc(sizeof(Node));if (NULL == tmp){std::cout << "Push to stack failed~" << std::endl;return FAILED;}tmp->data = val;tmp->next = stack.top;// 新加入的节点变成栈顶节点 就next只像旧的栈顶指针stack.top = tmp;// top指向新栈顶元素stack.length++;return OK;}int DStackEmpty(DStack& stack){return stack.length == 0;}int DStackSize(DStack& stack){return stack.length;}int Pop(DStack& stack){if (DStackEmpty(stack))// 判断是否已经是空栈{std::cout << "POP stack is empty" << std::endl;return ERROR;}Node* ptr = stack.top;// 栈顶寄存在ptrstack.top = ptr->next;// 先将top指针指向下一个元素 即将变成新的栈顶stack.length--;free(ptr);// 释放栈顶元素 出栈成功ptr = NULL;return OK;}
0 0
- 动态栈 栈结构的链式实现
- 栈的链式结构实现
- 栈的链式 结构实现
- 栈的实现(顺序结构&&链式结构)
- 栈的链式存储结构的实现
- 栈的链式存储结构C++实现
- c++实现链式结构的栈
- 栈的链式存储结构及实现
- 栈的链式存储结构及实现
- 线性结构--->栈的链式存储实现
- 栈的链式存储结构以及实现
- 基于链式结构的栈实现
- 栈的链式存储结构和实现
- 栈的链式结构
- 栈的链式存储结构
- 栈的链式存储结构
- 栈的链式存储结构
- 栈的链式存储结构
- python用httplib模块发送get和post请求
- Poj 2481 Cows 树状数组
- Intent总结
- 读写二进制时,怎么将ASCII码大于等于128的char字符转换为16进制输出
- SDRM/DDR 寻址
- 动态栈 栈结构的链式实现
- iPhone:动态获取UILabel的高度和宽度
- ACM 二分图匹配 匈牙利匹配模板 URAL 1997
- android Broadcast 生命周期详细分析 .
- 浅析epoll-为何多路复用I/O要使用epoll
- 宏定义的黑魔法 - 宏菜鸟起飞手册
- 文件格式转换工具Print2Flash
- JAVA后台响应全局快捷键操作
- 使用cocoaPods import导入时没有提示的解决办法