链栈的基本操作实现(c语言)
2016-10-12 18:37
351 查看
#include<stdio.h> #include<stdlib.h> typedef int ElemType; typedef struct linknode { ElemType data; struct linknode *next; }LiStack; /****************初始化链栈********************/ void InitStack(LiStack* &s) { s=(LiStack*)malloc(sizeof(LiStack)); s->next=NULL; } /****************销毁链栈********************/ void DestroyStack(LiStack* &s) { LiStack *p=s->next,*q=s; while(p!=NULL) { free(q); q=p; p=p->next; } free(p); } /****************判断链栈是否为空********************/ bool StackEmpty(LiStack* &s) { return (s->next==NULL); } /****************进栈********************/ void Push(LiStack* &s,ElemType e) { LiStack *p; p=(LiStack*)malloc(sizeof(LiStack)); p->data=e; p->next=s->next; s->next=p; } /****************出栈********************/ bool Pop(LiStack* &s,ElemType &e) { LiStack *p=s->next; if(s->next!=NULL) return false; else { e=p->data; s->next=p->next; free(p); return true; } } /****************得到栈顶元素********************/ bool GetTop(LiStack* &s,ElemType &e) { LiStack *p=s->next; if(s->next==NULL) return false; e=p->data; return true; } /****************输出链栈元素********************/ void PrintStack(LiStack* &s) { LiStack *p=s->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; } }
相关文章推荐
- 用C语言实现链栈的基本操作
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- 八.二叉树各种操作的C语言实现 树的一些基本的操作,包括,树的建立,树的深度,
- C语言来实现链表的相加基本操作 桂林电子科技大学 大二实验
- c语言实现静态链表的基本操作
- C语言实现栈的基本操作
- c语言(逆序)建立链栈与栈的基本操作
- 链栈的基本操作实现
- [数据结构][C语言]图的基本介绍和操作实现之基本概念
- C语言实现链表的创建、增加、删除、查询、逆序、清空等基本操作
- C语言实现循环队列基本操作(初始化、判断队空、入队、出队)
- 顺序队列(循环队列)基本操作实现 C语言
- C语言数组实现栈的基本操作,并利用O(1)求出栈中最小元素
- [数据结构][C语言]图的基本介绍和操作实现之图的存储结构
- 静态串及其基本操作(C语言实现)
- 数据结构顺序栈和链栈基本操作----c++实现
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- C语言实现二叉树的基本操作---创建、遍历、求深度、求叶子结点
- C语言实现双链表基本操作(创建、查找、插入、删除)
- C语言实现无头链表的基本操作