第五周——项目二—建立链栈算法库
来源:互联网 发布:淘宝发论文被骗 编辑:程序博客网 时间:2024/06/13 22:53
/*烟台大学计算机学院 文件名称:lianzhan 作者:董玉祥 完成日期: 2017 10 15 问题描述:建立链栈算法库 */linkstnode.h#ifndef LINKSTNODE_H_INCLUDED#define LINKSTNODE_H_INCLUDEDtypedef char ElemType;typedef struct linknode{ ElemType data; struct linknode *next;}LinkStNode;void InitStack(LinkStNode *&s);void DestroyStack(LinkStNode *&s);bool StackEmpty(LinkStNode *s);int StackLength(LinkStNode *s);void Push(LinkStNode *&s,ElemType e);bool Pop(LinkStNode *&s,ElemType &e);bool GetTop(LinkStNode *&s,ElemType &e);void DispStack(LinkStNode *&s);#endif // LINKSTNODE_H_INCLUDEDlinkstnode.cpp#include "stdio.h"#include "malloc.h"#include "linkstnode.h"void InitStack(LinkStNode *&s){ s=(LinkStNode *)malloc(sizeof(LinkStNode)); s->next=NULL;}void DestroyStack(LinkStNode *&s){ LinkStNode *pre,*p; pre=s; p=s->next; while(p!=NULL) { free(pre); pre=p; p=p->next; } free(pre);}bool StackEmpty(LinkStNode *s){ return (s->next==NULL);}int StackLength(LinkStNode *s){ int n=0; while(s->next!=NULL) { n++; s=s->next; } return n;}void Push(LinkStNode *&s,ElemType e){ LinkStNode *p; p=(LinkStNode *)malloc(sizeof(LinkStNode)); p->data=e; p->next=s->next; s->next=p;}bool Pop(LinkStNode *&s,ElemType &e){ LinkStNode *p; if(s->next==NULL) { return false; } p=s->next; e=p->data; s->next=p->next; free(p); return true;}bool GetTop(LinkStNode *&s,ElemType &e){ if(s->next==NULL) return false; e=s->next->data; return true;}void DispStack(LinkStNode *&s){ LinkStNode *p; p=s->next; while(p!=NULL) { printf("%c ",p->data); p=p->next; } printf("\n");}main.cpp#include <stdio.h>#include "linkstnode.h"using namespace std;int main(){ ElemType e; LinkStNode *s; printf("(1)初始化链栈s\n"); InitStack(s); printf("(2)链栈为%s\n",(StackEmpty(s)?"空":"非空")); printf("(3)依次进链栈元素a,b,c,d,e\n"); Push(s,'a'); Push(s,'b'); Push(s,'c'); Push(s,'d'); Push(s,'e'); printf("(4)链栈为%s\n",(StackEmpty(s)?"空":"非空")); printf("(5)链栈长度:%d\n",StackLength(s)); printf("(6)从链栈顶到链栈底元素:");DispStack(s); printf("(7)出链栈序列:"); while (!StackEmpty(s)) { Pop(s,e); printf("%c ",e); } printf("\n"); printf("(8)链栈为%s\n",(StackEmpty(s)?"空":"非空")); printf("(9)释放链栈\n"); DestroyStack(s); return 0;}运行结果截图:
阅读全文
0 0
- 第五周——项目二—建立链栈算法库
- 第五周——项目二—建立链栈算法库
- 第五周项目二——建立链栈算法库
- 数据结构第五周项目(二)——建立链栈算法库
- 第五周项目二—建立链栈的算法库
- 第五周项目2—建立链栈算法库
- 第五周项目2—建立链栈算法库
- 第五周项目2— 建立链栈算法库
- 第五周项目2— 建立链栈算法库
- 第五周项目2— 建立链栈算法库
- 第五周 项目二 【建立链栈算法库】
- 第五周项目二 建立链栈算法库
- 第五周【项目二-建立链栈算法库】
- 第五周- 项目二 建立链栈算法库
- 第五周-项目二--建立链栈算法库
- 第五周项目二(建立链栈算法库)
- 第五周项目二--建立栈链算法库
- 第五周项目二 建立链栈算法库
- 我竟然被抓去做了比特币挖矿工
- 集群、分布式、负载均衡区别与联系
- Hierarchical Clustering(层次聚类)
- apache 访问日志access_log 配置和解析 rotatelogs分割日志
- WebStorm安装教程和激活方式
- 第五周——项目二—建立链栈算法库
- apache 负载均衡
- 初学Spring有没有适合的书?
- css实现背景透明文字不透明
- redise数据结构之之字符串和链表
- UnityShader初级篇——实现逐像素漫反射光照模型
- 【转】gcc for Windows 开发环境介绍
- (四)ElasticSearch索引创建
- 数据结构之vector&list