链栈的建立、判空、入栈、出栈、求长、访顶、清空和销毁
来源:互联网 发布:vb 显示在picturebox 编辑:程序博客网 时间:2024/04/30 10:53
#include<iostream>using namespace std;typedef struct node{int data;struct node*next;}Node, *stack;//初始化栈void initialsatck(stack &s){s = new Node;s->next = NULL;}//判断栈是不是空的bool isempty(stack &s){if (NULL == s){cout << "栈不存在" << endl;//表示栈没初始化成功exit(0);}if (s->next == NULL){return true;}return false;}//进行入栈操作push函数void push(stack &s, int element){//先开辟一个空间存储新的数据Node*p = new Node;p->data = element;p->next = s->next;s->next = p;}//出栈操作int pop(stack &s){if (isempty(s)){exit(1);}Node* p = s->next;//按照出战的过程,先进后出,找到栈首的下一个结点,使栈首指向取出结点的下一个结点对象s->next = p->next;int element = p->data;delete p; //清空取出数据的空间return element;}int getlength(stack& s) //取栈的地址,进行查看栈的长度{Node* p = s;int length = 0;while (p->next != NULL){p = p->next;length++;}return length;}//获取栈顶的数据 int gettop(stack& s){if (isempty(s)){exit(1);}return s->next->data;}//清空栈的空间 这只是销毁栈的存储数据的空间,没有销毁栈首的位置void clearstack(stack& s){while (!isempty(s)){pop(s);}}//销毁栈空间void destorystack(stack& s){while(!isempty(s)){pop(s);}delete s;s = NULL;}void print(bool b){if (b)cout << "yes" << endl;else cout << "no" << endl;}int main(){stack s;initialsatck(s);for (int i = 0; i < 10; i++){push(s, i);}cout << getlength(s) << endl;while (!isempty(s)){cout << pop(s) << endl;}cout << getlength(s) << endl;clearstack(s);cout << getlength(s) << endl;destorystack(s);system("pause");return 0;}
0 0
- 链栈的建立、判空、入栈、出栈、求长、访顶、清空和销毁
- 链栈的建立、判空、入栈、出栈、求长、访顶、清空和销毁
- 链式栈的初始化,判空,进栈,出栈,求长,求顶,打印,清空和销毁
- 顺序栈的初始化,进栈、出栈、求长、判空、访顶、遍历、清空、销毁
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 链栈初始化、进栈、出栈、判空、遍历、求长、求顶、清栈、毁栈
- [数据结构]c语言实现链栈的入栈,出栈,清空,销毁等操作
- [数据结构]c语言实现顺序栈的入栈,出栈,清空,销毁等操作
- 【学习点滴-数据结构-栈&队列】 顺序栈的建立,入栈,出栈,判空
- C++ 栈的 基本操作 入栈 出栈 判空 求长度
- C++ 栈的 基本操作 入栈 出栈 判空 求长度(方法二)
- 链队列和循环队列的表示与实现-初始化、判空、求长、入队、出队、遍历、求头、求尾、清队、毁队
- 栈的出栈、入栈、遍历、清空操作
- 栈的基本实现(入栈,出栈,清空,判断是否为空)
- 栈的创建 以及基本操作出栈 入栈,判空
- 链式堆栈的初始化、出栈、入栈、取栈顶元素、判空
- Linux的SOCKET编程详解 .
- C语言中内存偏移量
- poj 1088 滑雪(dfs记忆化搜索)
- ssh: connect to host localhost port 22: Connection refused
- hdu5422#53-div2-1Rikka with Graph
- 链栈的建立、判空、入栈、出栈、求长、访顶、清空和销毁
- Adt安装
- 网路之ASI 1 - 小下载
- 查找算法之二叉查找树
- LeetCode题解----Number of 1 Bits
- 关于解决testlink“指派测试计划的角色”无法更新问题
- CodeFirst迁移注意点
- 8.30List详解
- LeetCode Swap Nodes in Pairs