栈的入栈/出栈操作
来源:互联网 发布:黑道圣徒4捏脸数据 编辑:程序博客网 时间:2024/04/30 23:21
//...........................编程实现栈的入栈/出栈操作 (先进后出)/*栈 ---只允许在表的末端进行插入和删除的线性表 允许插入和删除的一端叫做栈顶 不允许插入和删除的一端叫做栈底 */#if 0 #include<iostream>#include<stdio.h>#include<string.h>#include<conio.h>using namespace std;typedef struct student{ int data; struct student *next;}node;typedef struct stackqueue{ node *zhandi,*top;}queue;//创建空栈queue *CreateStack(){ queue *q; q = (queue*)malloc(sizeof(queue)); q->zhandi = NULL; q->top= NULL; //分别将栈顶和栈底指针置空 return q;}//入栈queue *push(queue *HQ,int x){ node *s,*p; s = (node*)malloc(sizeof(node)); s->data = x; s->next = NULL; if(HQ->zhandi == NULL) //如果栈为空 则新节点即是栈顶也是栈底 { HQ->zhandi = s; HQ->top = s; } else //如果栈不为空,新节点放在栈顶,栈顶指针指向新节点 { HQ->top ->next = s; //栈顶节点的指针指向新节点 HQ->top = s; //栈顶指针指向新节点 } return (HQ);}//出栈 --从栈顶一端删除节点queue *pop(queue *HQ){ node *p; int x; if(HQ->zhandi == NULL) cout<<"Empty stack!\n"; else { x = HQ->zhandi ->data ; p = HQ->zhandi ; if(HQ->zhandi ==HQ->top ) //将栈置空 { HQ->zhandi = NULL; HQ->top = NULL; } else { while(p->next !=HQ->top ) //循环遍历找到栈顶元素出队 { p = p->next ; } HQ->top = p; HQ->top ->next =NULL; } return (HQ); }}//栈的打印void Print(queue *HQ){ node *s = HQ->zhandi ; if(s == NULL) //如果队列为空,直接返回 { cout<<"Empty stack!\n"; return ; } while(s != NULL) { cout<<s->data<<" "; s=s->next ; } cout<<endl;}int main(){ queue *p =NULL; p =CreateStack(); p =push(p,2); //将元素入栈 p =push(p,3); p =push(p,4); p =push(p,5); p =push(p,1); p =push(p,9); Print(p); p = pop(p);//将元素出栈 p = pop(p); Print(p); delete []p; return 0;}#endif
阅读全文
0 0
- 栈的入栈/出栈操作
- 栈的入栈和出栈操作的实现
- 编程实现栈的入栈与出栈操作
- 栈的基本操作 出栈与入栈
- 编程实现栈的入栈/出栈操作
- 栈的操作,创建,遍历,入栈,出栈
- 栈的入栈和出栈操作
- 栈的出栈、入栈、遍历、清空操作
- 链栈的常用操作(初始化,入栈,出…
- 链表栈的入栈和出栈操作
- 链式存储结构实现队列的入队和出队操作以及 栈的出栈和入栈操作
- UINavigationController的出栈和入栈
- 堆栈-线性存储(出栈和入栈操作)
- 3.5判断出栈和入栈操作序列是否合法
- 链表栈的基本操作的实现---入栈、出栈、清空
- 栈的基本操作(C语言版):入栈,出栈,输出栈
- Java 用数组实现栈 (Stack),包括栈的初始化,入栈、出栈等操作
- C++栈的初始化,入栈,出栈,获取栈顶元素等操作
- Python脚本编译出现语法错误:IndentationError: unindent does not match any outer indentation level
- ajax回调函数没反应----条件分页查询sql
- PHP环境下Memcache的使用方法
- div文本溢出,隐藏显示,获取文本实际高度的问题
- 无法获得数据库'model'上的排他锁 解决办法
- 栈的入栈/出栈操作
- Struts_ActionContext_valuestack解惑
- POJ 2420 模拟退火 解题报告
- Kotlin与Swift 从零开始(一)基础语法
- MPAndroidChart MarkerView的精确点击问题解决方案
- C++插入及取出队列数据可以任意修改设定的队列长度
- Java Web入门必知
- okhttp框架解析与应用
- JAVA的23种设计模式---代理模式(一)