【数据结构】链式栈的操作
来源:互联网 发布:高新区行知小学怎么样 编辑:程序博客网 时间:2024/05/29 14:22
#include <stdio.h>#include <malloc.h>typedef int ElemType;typedef struct LinkStack{LinkStack *link;ElemType elem;}* PLinkStack;void InitStack(PLinkStack L); PLinkStack Push(PLinkStack L,ElemType i); PLinkStack Pop(PLinkStack L); void DestroyStack(PLinkStack L); bool StackEmpty(PLinkStack L); ElemType GetTop(PLinkStack L); void StackTraverse(PLinkStack L); void main(){PLinkStack L;L = (PLinkStack)malloc(sizeof(LinkStack));InitStack(L);for (int i = 0; i < 5; i++){L = Push(L,i*2+1);}StackTraverse(L);L = Pop(L);StackTraverse(L);if (!StackEmpty(L))printf("%d\n",GetTop(L));DestroyStack(L);}void InitStack(PLinkStack L) // 建立一个空的链式栈{L->link = NULL;}PLinkStack Push(PLinkStack L,ElemType i){PLinkStack P;P = (PLinkStack)malloc(sizeof(LinkStack));if (P == NULL){printf("内存分配失败\n");return NULL;}P->elem = i;P->link = L;L = P;return L;}PLinkStack Pop(PLinkStack L){PLinkStack P = L;L = L->link;free(P);return L;}void DestroyStack(PLinkStack L){if (L != NULL){L->link = NULL;free(L);}}bool StackEmpty(PLinkStack L){return (L==NULL && L->link == NULL); // true 为空; false 不为空}ElemType GetTop(PLinkStack L){return L->elem;}void StackTraverse(PLinkStack L){PLinkStack P = L;while (P->link != NULL){printf("%d\t",P->elem);P = P->link;}printf("\n");}
0 0
- 【数据结构】链式栈的操作
- 数据结构笔记之链式栈的基本操作
- 数据结构之链式栈的一些基本操作
- 数据结构 串(链式存储)的基本操作
- 【数据结构】 链式队列的一些操作
- 数据结构之链式队列的所有操作
- 【数据结构】链式队列的基本操作
- 栈的链式操作-------
- 数据结构《链式栈的存储》
- 数据结构-链式栈的实现
- 数据结构---栈的链式实现
- 数据结构 - 栈的链式存储
- 数据结构-->栈的链式实现
- 数据结构-栈的链式存储
- 链式栈的基本操作
- 链式栈的基数操作
- 链式栈的基本操作
- 链式栈的基本操作
- 最受欢迎的ASP.NET的CMS下载(资源共享)
- 【ubuntu安装eclipse 出现no swt-gtk-3740 in java.library.path no swt-gtk in java.library.path】
- FLV 文件格式解析
- ios shake手势
- intent传递对象的两种方法
- 【数据结构】链式栈的操作
- sql 排除重复(面试经常用到哦)
- Spket安装配置
- 想做基于语义分析的移动搜索引擎,“出门问问”确认获得SIG领投的近千万美金B轮融资
- void is an invalid type for the variable……错误解决
- Junit4 Suite用法 及 整包放进Suite的方法求助
- [python]json.load() vs val()探究
- Android密码框中显示隐藏密码
- Jdk源码调试