电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

试验二栈、队列的实现及应用讲解

试验二栈、队列的实现及应用讲解_第1页
1/16
试验二栈、队列的实现及应用讲解_第2页
2/16
试验二栈、队列的实现及应用讲解_第3页
3/16
实验二栈、队列的实现及应用实验课程名 :数据结构与算法专业班级:学号:姓名:实验时间:实验地点:指导教师:冯珊一、 实验目的1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用。2、掌握栈和队列的特点,即先进后出与先进先出的原则。3、掌握栈和队列的基本操作实现方法。二、 实验内容一、实验目的及要求1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用。2、掌握栈和队列的特点,即先进后出与先进先出的原则。3、掌握栈和队列的基本操作实现方法。二、实验学时2学时三、实验任务任务一:( 1)实现栈的顺序存储(2)实现栈的链式存储。任务二:实现顺序存储的循环队列,完成键盘缓冲区的功能。四、实验重点、难点1.进栈、出栈栈顶指针都要改变。2.队空、队满的条件及入队、出队时指针的变更。五、操作内容与要求1. 任务一( 1):完成下列程序,该程序实现栈的顺序存储结构,构建顺序栈(栈中的元素依次为 R,S,Y,F,C,T),依次进行进栈和出栈操作,判断栈空和栈满操作,返回栈顶元素操作。要求生成顺序栈时,从键盘上读取数据元素。(1)源代码: #include #include #defineSTACK_INIT_SIZE 100 #defineSTACKINCREMENT 10 # defineOK 1 # defineERROR 0 typedefchar SElemType; /* 顺序栈的存储类型 */typedefstruct//define structure SqStack(){ SElemType *base; SElemType *top; int stacksize; } SqStack; /* 构造空顺序栈 */int InitStack(SqStack * S) //InitStack() sub-function{ S->base = (SElemType *)malloc(STACK_INIT_SIZE*sizeof ( SElemType)); if (! S->base) { printf("分配空间失败 !\n" ); return ( ERROR); } S->top = S->base; S->stacksize = STACK_INIT_SIZE; printf(" 栈初始化成功! \n" ); return ( OK); } //InitStack() end/* 取顺序栈顶元素 */int GetTop( SqStack * S, SElemType * e) //GetTop() sub-function{ if ( S->top == S->base) { printf("栈为空 !\n" ); //if empty SqStackreturn ( ERROR); } *e = *(S->top - 1); return ( OK); } //GetTop() end/* 将元素压入顺序栈 */int Push( SqStack * S) //Push() sub-function{ SElemType e; if ( S->top - S->base> S->stacksize) { S->b...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

试验二栈、队列的实现及应用讲解

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部