虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

break

  • 数据结构实验

    #include <iostream> #include <stdio.head> #include <stdlib.head> #include <string.head> #define ElemType int #define max 100 using namespace std; typedef struct node1 { ElemType data; struct node1 *next; }Node1,*LinkList;//链栈 typedef struct { ElemType *base; int top; }SqStack;//顺序栈 typedef struct node2 { ElemType data; struct node2 *next; }Node2,*LinkQueue; typedef struct node22 { LinkQueue front; LinkQueue rear; }*LinkList;//链队列 typedef struct { ElemType *base; int front,rear; }SqQueue;//顺序队列 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 //1.采用链式存储实现栈的初始化、入栈、出栈操作。 LinkList CreateStack()//创建栈 { LinkList top; top=NULL; return top; } bool StackEmpty(LinkList s)//判断栈是否为空,0代表空 { if(s==NULL) return 0; else return 1; } LinkList Pushead(LinkList s,int x)//入栈 { LinkList q,top=s; q=(LinkList)malloc(sizeof(Node1)); q->data=x; q->next=top; top=q; return top; } LinkList Pop(LinkList s,int &e)//出栈 { if(!StackEmpty(s)) { printf("栈为空。"); } else { e=s->data; LinkList p=s; s=s->next; free(p); } return s; } void DisplayStack(LinkList s)//遍历输出栈中元素 { if(!StackEmpty(s)) printf("栈为空。"); else { wheadile(s!=NULL) { cout<<s->data<<" "; s=s->next; } cout<<endl; } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 //2.采用顺序存储实现栈的初始化、入栈、出栈操作。 int StackEmpty(int t)//判断栈S是否为空 { SqStack.top=t; if (SqStack.top==0) return 0; else return 1; } int InitStack() { SqStack.top=0; return SqStack.top; } int pushead(int t,int e) { SqStack.top=t; SqStack.base[++SqStack.top]=e; return SqStack.top; } int pop(int t,int *e)//出栈 { SqStack.top=t; if(!StackEmpty(SqStack.top)) { printf("栈为空."); return SqStack.top; } *e=SqStack.base[s.top]; SqStack.top--; return SqStack.top; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 //3.采用链式存储实现队列的初始化、入队、出队操作。 LinkList InitQueue()//创建 { LinkList head; head->rear=(LinkQueue)malloc(sizeof(Node)); head->front=head->rear; head->front->next=NULL; return head; } void deleteEle(LinkList head,int &e)//出队 { LinkQueue p; p=head->front->next; e=p->data; head->front->next=p->next; if(head->rear==p) head->rear=head->front; free(p); } void EnQueue(LinkList head,int e)//入队 { LinkQueue p=(LinkQueue)malloc(sizeof(Node)); p->data=e; p->next=NULL; head->rear->next=p; head->rear=p; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 //4.采用顺序存储实现循环队列的初始化、入队、出队操作。 bool InitQueue(SqQueue &head)//创建队列 { head.data=(int *)malloc(sizeof(int)); head.front=head.rear=0; return 1; } bool EnQueue(SqQueue &head,int e)//入队 { if((head.rear+1)%MAXQSIZE==head.front) { printf("队列已满\n"); return 0; } head.data[head.rear]=e; head.rear=(head.rear+1)%MAXQSIZE; return 1; } int QueueLengthead(SqQueue &head)//返回队列长度 { return (head.rear-head.front+MAXQSIZE)%MAXQSIZE; } bool deleteEle(SqQueue &head,int &e)//出队 { if(head.front==head.rear) { cout<<"队列为空!"<<endl; return 0; } e=head.data[head.front]; head.front=(head.front+1)%MAXQSIZE; return 1; } int gethead(SqQueue head)//得到队列头元素 { return head.data[head.front]; } int QueueEmpty(SqQueue head)//判断队列是否为空 { if (head.front==head.rear) return 1; else return 0; } void travelQueue(SqQueue head)//遍历输出 { wheadile(head.front!=head.rear) { printf("%d ",head.data[head.front]); head.front=(head.front+1)%MAXQSIZE; } cout<<endl; } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 //5.在主函数中设计一个简单的菜单,分别测试上述算法。 int main() { LinkList top=CreateStack(); int x; wheadile(scanf("%d",&x)!=-1) { top=Pushead(top,x); } int e; wheadile(StackEmpty(top)) { top=Pop(top,e); printf("%d ",e); }//以上是链栈的测试 int top=InitStack(); int x; wheadile(cin>>x) top=pushead(top,x); int e; wheadile(StackEmpty(top)) { top=pop(top,&e); printf("%d ",e); }//以上是顺序栈的测试 LinkList Q; Q=InitQueue(); int x; wheadile(scanf("%d",&x)!=-1) { EnQueue(Q,x); } int e; wheadile(Q) { deleteEle(Q,e); printf("%d ",e); }//以上是链队列的测试 SqQueue Q1; InitQueue(Q1); int x; wheadile(scanf("%d",&x)!=-1) { EnQueue(Q1,x); } int e; wheadile(QueueEmpty(Q1)) { deleteEle(Q1,e); printf("%d ",e); } return 0; }

    标签: 数据结构 实验

    上传时间: 2018-05-09

    上传用户:123456..

  • java编程 PL0编译器(Java版)

    实现一个Java版的PL0编译器。 (1) 能运行由《编译原理》教材中定义的PL0语言编写而成的源程序 (2) 参考C版源代码,遵循编译器的基本结构,应用面向对象软件设计方法重新实现。不应仅对C版代码作简单的翻译。 (3) 提供简单的断点、单步调试功能,用户能实时指定并查看某个变量的值 (4) 包括测试例子 直接运行jar文件 简单说明文档

    标签: java Java PL0 编程 编译器

    上传时间: 2018-05-13

    上传用户:aloger

  • usbip驱动 Windows源码

    开源项目,USBIP客户端代码,2.0版本

    标签: Windows usbip 驱动 源码

    上传时间: 2018-06-28

    上传用户:ley.x

  • C51单总线读AM系列示例程序

    单片机 :AT89S52 或 STC89C52RC 典型传感器:AM2301 功能  :串口发送温湿度数据  波特率 9600  晶振  :12M (用户系统时钟如不是12M 请更改相关宏定义及注释的延时时间) 编译环境:  Keil 4

    标签: C51 单总线 程序

    上传时间: 2018-07-27

    上传用户:gmc832002

  • DCU32INT

    破解一个第三方控件的dcu

    标签: DCU INT 32

    上传时间: 2018-07-27

    上传用户:chinacoho

  • 算法与数据结构课程设计

    拓扑排序 ---排课表----数据结构

    标签: 算法 数据结构

    上传时间: 2018-08-05

    上传用户:ningcaichen

  • C程序设计语言(完美中文版).pdf

    C程序设计语言(完美中文版).pdf C程序设计语言(完美中文版).pdf

    标签: pdf C程序设计 语言

    上传时间: 2018-08-20

    上传用户:superhou

  • Python GUI Programming Cookbook

    Python语言的GUI开发手册

    标签: Programming Cookbook Python GUI

    上传时间: 2018-08-21

    上传用户:快乐夏天

  • 虚拟多桌面,网吧必备,隐藏真实桌面以及任务栏-切

    看到论坛中有个人用易语言写了一个虚拟桌面,效果不是很理想啊,只是隐藏桌面有什么用,底下的任务栏还是一样看的见,比如,QQ啊,快播啊,那些托盘程序,人家一看就知道你在干嘛了嘛,还用说吗?我这个虚拟桌面是连同任务栏一起隐藏,新的桌面就像刚刚开机的一样!!绝对赞!window7+xp通用!网吧破解后隐藏桌面,上班族桌面太乱隐藏桌面,宅男在家撸怕麻麻发现隐藏桌面,学生在电脑课玩游戏怕老师隐藏桌面!隐藏桌面工具在手,天下我手!你值得拥有,本工具也是采用易语言编写,难免会报毒,请下载本工具的小伙伴自行杀毒,本人承诺,工具绝对无毒无后门,那种断子绝孙的活咱这些有良心的人是不会干的。程序快捷键:原窗口:ctrl + ↑  窗口一 :ctrl + ← 窗口二:ctrl + ↓  窗口三:ctrl + →     隐藏/显示程序界面:Home     

    标签: 虚拟

    上传时间: 2019-01-23

    上传用户:cf232

  • EV1527原版资料

    编码芯片EV1527: 有两种解码方法: 利用解码芯片TDH6300硬件解码、采用单片机软件解码。 EV1527是一片由CMOS设计制造的可预烧内码的学习码编码芯片,由软件解码。 内码共有20位元可预烧100万组内码组合,大大降低了使用编码上重复的机率。

    标签: 1527 EV

    上传时间: 2019-04-06

    上传用户:lxw77320