山东大学数据结构第二次实验实验报告.pdf
《山东大学数据结构第二次实验实验报告.pdf》由会员分享,可在线阅读,更多相关《山东大学数据结构第二次实验实验报告.pdf(7页珍藏版)》请在三一文库上搜索。
1、实验 2 ADT栈与队列的编程与实现 实验目的 :加深对抽象数据类型ADT栈和队列的理解; 实验原理 :参照课本p.64-66 ,及 Figure3.39-3.44; 课本 p.82-83 ,及 Figure3.57-3.60. 实验内容 :编写程序实现ADT栈的定义,及常用操作(数组或指针实现): 1)生成栈; 2)Push 3)Pop 编写程序实现ADT队列的定义,及常用操作: 1)生成队列; 2)Enqueues 入列; 3)Isempty 判断是否队列为空。 实验要求 : 1)实现 ADT栈的结构及操作; 2)实现 ADT队列的结构及操作,并给出应用。 1.栈(链表实现) 实验源程序:
2、 #include “stdafx.h“ #include “stdio.h“ #include “stdlib.h“ #include “malloc.h“ #include “string.h“ typedef struct node /定义一个栈的结构 int data; struct node *pNext; /pNext 为指向栈中下一个空间的指针 Node,*pNode; typedef pNode Stack; Stack InitStack() ; /初始化栈 void CreateStack(Stack Top); /生成栈 bool Empty(Stack Top); /判
3、断栈是否为空 void Push(Stack Top,int n); /进行压栈操作 void Pop(Stack Top); /进行出栈操作 void TraverseStack(Stack Top); /遍历栈的函数 void DeleteStack(Stack Top); /清空栈的函数 int main() /主函数 int n; char str6; /定义数组,存储操作指令 Stack Top=NULL; /初始化 Top 为 NULL Top=InitStack(); /初始化栈 CreateStack(Top); /生成栈 TraverseStack(Top); /遍历栈 pr
4、intf(“ 请输入下一步操作指令(push,pop or end):“); while(1) scanf(“%s“,str); /获取操作指令 if(strcmp(str,“push“)=0) printf(“ 请输入入栈的元素:“); scanf(“%d“, Push(Top,n); /进栈操作 TraverseStack(Top); printf(“ 请输入下一步操作指令(push,pop or end):“); if(strcmp(str,“pop“)=0) Pop(Top); /出栈操作 TraverseStack(Top); printf(“ 请输入下一步操作指令(push,pop
5、 or end):“); if(strcmp(str,“end“)=0) break; /跳出循环 if(strcmp(str,“push“)!=0 DeleteStack(Top); /释放栈空间 return 0; Stack InitStack() /进行栈的初始化的函数 Stack Top = (Stack)malloc(sizeof(Node); /分配内存空间给栈顶 if(Top=NULL) printf(“ 动态分配内存失败n“); exit(1); printf(“ 初始化栈成功 n“); Top-pNext = NULL; /栈顶指针的指向置为NULL ; return To
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 山东大学 数据结构 第二次 实验 报告
链接地址:https://www.31doc.com/p-5164158.html