栈的链式存储结构及其基本运算的实现
来源:互联网 发布:中国核潜艇打海盗知乎 编辑:程序博客网 时间:2024/05/16 09:57
#include <iostream>#include <stdlib.h>using namespace std;typedef char ElemType;typedef struct linknode{ ElemType data; struct linknode *next;} LiStack;void InitStack(LiStack *L);//初始化栈void DestroyStack(LiStack *L);//销毁栈bool StackEmpty(LiStack *L);//判断栈是否为空void Push(LiStack *L,ElemType e);//进栈bool Pop(LiStack *L,ElemType &e);//出栈bool GetTop(LiStack *L,ElemType &e);//取栈顶元素int main(){ LiStack *L=new LiStack(); cout<<StackEmpty(L)<<endl; ElemType e; InitStack(L); Push(L,'a'); Push(L,'b'); // GetTop(L,e); Pop(L,e); cout<<e<<endl; Pop(L,e); cout<<e<<endl; DestroyStack(L); cout<<StackEmpty(L)<<endl; return 0;}bool GetTop(LiStack *L,ElemType &e)//取栈顶元素{ if(L->next==NULL) return false; else { e=L->next->data; return true; }}bool Pop(LiStack *L,ElemType &e)//出栈{ LiStack *q=L->next; if(L->next==NULL) return false; else { e=q->data; L->next=q->next; free(q); return true; }}void Push(LiStack *L,ElemType e)//进栈{ LiStack *s=(LiStack*)malloc(sizeof(LiStack)); s->data=e; s->next=L->next; L->next=s;}bool StackEmpty(LiStack *L)//判断栈是否为空{ return L->next==NULL;}void DestroyStack(LiStack *L)//销毁栈{ LiStack *s=L->next; while(L->next!=NULL) { free(L); L=s; s=L->next; }}void InitStack(LiStack *L)//初始化栈{ L=(LiStack*)malloc(sizeof(LiStack)); L->next=NULL;}链栈的优点是不存在栈满的情况。
0 0
- 栈的链式存储结构及其基本运算的实现
- 栈的链式存储结构及其基本运算的实现
- 栈的链式存储结构及其基本运算的实现
- 栈的链式存储结构及其基本运算实现
- 栈的链式存储结构及其基本运算实现
- 第六周:栈的链式存储结构及其基本运算实现
- 栈的链式存储结构及其运算
- 栈的链式存储及其基本运算
- 第7周实践项目2 队列的链式存储结构及其基本运算的实现
- 队列的链式存储及其基本运算
- 栈的顺序存储结构及其基本运算实现
- 栈的顺序存储结构及其基本运算实现
- 栈的顺序存储结构及其基本运算实现
- 字符串链式存储结构的基本运算
- 栈——链式存储结构及其基本运算
- 队列的顺序存储结构及其基本运算的实现
- 队列的顺序存储结构及其基本运算的实现
- 队列——链式存储结构及其基本运算(链队列的另一种表达方式)
- Android-Intent两种启动方式
- 熵权法简介
- 排序——堆排序(C++)
- 点击两次,才退出应用的程序代码
- MyEclipse快捷键大全
- 栈的链式存储结构及其基本运算的实现
- 【phpcms-v9】前台模板文件中{pc}标签的执行流程
- go语言捕获panic异常并转化为error
- Nginx
- MIME数据类型之初体验
- 【phpcms-v9】content_form.calss.php文件分析-内容添加页面动态表单的生成原理
- Mybatis多参数传递三种解决方案
- hdoj-1048-The Hardest Problem Ever
- 【phpcms-v9】category.php文件分析-添加栏目