数据结构-栈的链式存储
来源:互联网 发布:盘古数据股票 编辑:程序博客网 时间:2024/05/29 14:23
目标效果:
stack.h页面:
#ifndef STACK_H_INCLUDED#define STACK_H_INCLUDED#ifndef ElemType#define ElemType int /* 数据元素类型默认为 int */#define ELEMTYPE_TAG#endif//链栈的存储结构定义typedef struct LNode { ElemType data; struct LNode *next;} LNode, *LinkList;typedef LinkList LinkStack; //链栈类型//链栈的基本操作声明//构造一个空栈Sbool InitStack(LinkStack &S);//销毁栈Sbool DestroyStack(LinkStack &S);//将栈S清空bool ClearStack(LinkStack &S);//若栈S为空返回TRUE,否则FALSEbool StackEmpty(LinkStack S);//返回栈S中的元素个数int StackLength(LinkStack S);//用e返回栈顶元素// 前提:栈S存在且不空bool GetTop(LinkStack S, ElemType &e);//元素e入栈Sbool Push(LinkStack &S, ElemType e);//S出栈用e返回出栈元素// 前提:栈S存在且不空bool Pop(LinkStack &S, ElemType &e);/////////////////////////////////////////////////////////////链栈的基本操作的实现//构造一个空栈Sbool InitStack(LinkStack &S){S=NULL; return true;}//销毁栈Sbool DestroyStack(LinkStack &S){S=NULL; return true;}//将栈S清空bool ClearStack(LinkStack &S){S->data; return true;}//若栈S为空返回TRUE,否则FALSEbool StackEmpty(LinkStack S){if(S==NULL)return true;elsereturn false;}//返回栈S中的元素个数int StackLength(LinkStack S){LinkStack L;L=S;int i=0;while(L){L=L->next;i++;} return i;}//用e返回栈顶元素// 前提:栈S存在且不空bool GetTop(LinkStack S, ElemType &e){e=S->data; return true;}//元素e入栈Sbool Push(LinkStack &S, ElemType e){LinkStack P;P=(LinkList)malloc(sizeof(LNode));P->data=e;P->next=S;S=P;return true;}//S出栈用e返回出栈元素// 前提:栈S存在且不空bool Pop(LinkStack &S, ElemType &e){e=S->data;S=S->next;return true;}#ifdef ELEMTYPE_TAG#undef ElemType#undef ELEMTYPE_TAG#endif#endif
dsp0301.cpp页面:
#include <stdio.h>#include <stdlib.h> )#include "stack.h" //链栈//测试链栈的主程序int main(){ LinkStack s; int x; //输入若干正整数以0结束,依次入栈,然后依次出栈并打印 InitStack(s); printf("输入若干正整数以0结束:"); scanf("%d",&x); while(x!=0) { Push(s,x); scanf("%d",&x); }printf("\n栈中元素个数:");printf("%d",StackLength(s));printf("\n栈顶元素:");GetTop(s,x);printf("%d",x); printf("\n出栈结果:"); while(!StackEmpty(s)) { Pop(s,x); printf("%4d",x); }printf("\n栈中元素个数:");printf("%d\n",StackLength(s)); DestroyStack(s); //销毁栈 system("PAUSE"); return 0;}
源码下载:点击打开链接
阅读全文
0 0
- 数据结构《链式栈的存储》
- 数据结构 - 栈的链式存储
- 数据结构-栈的链式存储
- 数据结构---栈---链式存储
- 数据结构(栈):栈的链式存储结构
- 常用数据结构之链式存储的栈
- 数据结构四栈的链式存储结构
- 数据结构:栈的链式存储结构
- 【数据结构基础】栈的链式存储结构
- 数据结构之栈的链式存储结构
- 数据结构:栈的链式存储结构
- 数据结构的链式存储结构
- 数据结构的链式存储结构
- 数据结构-【栈】的链式存储和顺序存储
- 数据结构-栈的顺序存储和链式存储
- JAVA版数据结构之栈的链式存储实现
- Python 数据结构 之 栈 的顺序、链式存储结构
- 企业级数据结构-栈的链式存储设计与实现
- Swevlet中的监听器
- HttpServlet详解
- POJ 1284
- 学习之路:0001
- 杭电1089,1090,1091,1092,1093,1094
- 数据结构-栈的链式存储
- php判断安卓还是苹果客户端
- Json详解与使用
- Openlayers4中风场的实现
- 判断两个链表是否相交,如果相交如何找到第一个相交结点。
- iOS 图片上传使用base64或者二进制流上传头像
- 使用Jacob将Word、Excel转html,pdf转html
- 9月英语--进阶成长
- com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException