栈链式存储
来源:互联网 发布:淘宝直营店怎么开 编辑:程序博客网 时间:2024/05/22 05:22
#include <iostream>using namespace std;#include <stdlib.h>#define ERROR 0#define OK 1typedef struct Nlink { //栈的链式结构 int data; //数据域 Nlink *top; //出栈 Nlink *base; //进栈}Nlink,*linklist; bool init_link(linklist &L) { //栈的初始化 L = (linklist)malloc(sizeof(Nlink)); if(!L) return ERROR; L ->base = NULL; //栈顶和栈底指向NULL值 L ->top = L ->base; return OK;}bool push_link(linklist &L) { //入栈函数 linklist T; bool gohead = 1; int data; cout << "Please input some datum(enter '0' means end of input!) :" <<endl; while(gohead) { cin >> data; if(data < 0) { cout << "ERROR DATUM!" <<endl; return ERROR; } if(0 != data) { T = (linklist)malloc(sizeof(Nlink)); //运用逆向建表方式,进行压栈 if(!T) return ERROR; T ->data = data; T ->top = L; L = T; } else gohead = 0; } return OK;}void pop_link(linklist L) { //出栈函数 while (L ->top != L->base) { cout << L ->data; L = L ->top; if(L ->top != NULL) cout << ", "; }} bool main() { linklist P; init_link(P); push_link(P); pop_link(P); free(P); while(OK); return OK;}
结果图:
总结:书上用了线性存储方法,而我练习用链式存储。
第一,回忆栈的结构,就是一个指针总是最顶端,另一个是最低端;
但是链式的栈又是怎样?栈的特点就是先进后出,好像链式结构入栈在就是相当
存储下一个数据位置(栈顶指针等于next)?,出栈相当是打印数据,这好像没有
体现栈的特点。我写错了吗?
第二,我的思想是之前编写逆向建立链式存储而写栈的程序,因为最先写入的数据
相当插入链的尾部。
总体上,总觉有问题。
- 栈的链式存储
- 栈---链式存储实现
- 栈 -- 链式存储结构
- 栈链式存储
- 栈--链式存储
- 栈的链式存储
- 栈的链式存储
- 栈的链式存储
- 栈的链式存储
- 栈---链式存储
- 栈(链式存储)
- 栈的链式存储
- 栈的链式存储
- 数据结构---栈---链式存储
- 栈顺序存储&链式存储
- 栈的链式存储结构
- 栈的链式存储表示
- 链式存储结构(栈)
- AIX LV中偏移量问题(OFFSET)
- 信号处理中的边界处理
- HDU/HDOJ 3836 Equivalent Sets 多校联合1
- 计算网络连接状态数
- rownum,rowid
- 栈链式存储
- zoj2208 To and Fro水题
- WPF显示html的几种方法
- 使用 SharedPreferences 存取复杂类型的数据
- C# String与string的区别
- OpenGL ES 学习笔记(一)
- JAVA当中变量什么时候需要初始化?
- Extjs4开发笔记(三)——菜单的实现
- t-sql语句中添加定义结果集的XML语句