实验三 链栈的操作

实验三 链栈的操作

一、实验内容:

将单链表作为栈,写出初始化栈、判空栈、进栈和出栈操作。

二、实验目的

掌握初始化栈、判空栈、进栈和出栈的基本操作的实现

参考程序:

#include

#include

typedef struct node{

int value;

struct node *next;

}stackNode,*LinkStack;

void initStack(LinkStack &topPt)//初始化栈

{topPt=NULL;}

int isEmpty(LinkStack top)//判空栈

{return top==NULL;}

void push(LinkStack &topPt,int e)//进栈

{stackNode *p;

p=(stackNode*)malloc(sizeof(stackNode));

p->value=e;

p->next=topPt;

topPt=p;

}

int pop(LinkStack &topPt,int &vPt)//出栈

{stackNode *p;

if(isEmpty(topPt))return 0;

p=topPt;vPt=p->value;

topPt=p->next;

free(p);return 1;

}

void main()

{int choice=1,e,i;

LinkStack top,p;

initStack(top);

while(choice=4)

} {printf("\t1:push\n"); printf("\t2:pop\n"); printf("\t3:show the stack\n"); printf("\t4:exit\n"); scanf("%d",&choice); if(choice==1){printf("input an element(int):"); scanf("%d",&e); push(top,e); } else if(choice==2){i=pop(top,e); if(i==0)printf("Stack is empty\n"); else printf("the poped value is %d\n",e); } else if(choice==3){p=top; printf("all element:"); while(p) {printf("%3d",p->value); p=p->next; } } else if(choice!=4)printf("error\n"); }

实验三 链栈的操作

一、实验内容:

将单链表作为栈,写出初始化栈、判空栈、进栈和出栈操作。

二、实验目的

掌握初始化栈、判空栈、进栈和出栈的基本操作的实现

参考程序:

#include

#include

typedef struct node{

int value;

struct node *next;

}stackNode,*LinkStack;

void initStack(LinkStack &topPt)//初始化栈

{topPt=NULL;}

int isEmpty(LinkStack top)//判空栈

{return top==NULL;}

void push(LinkStack &topPt,int e)//进栈

{stackNode *p;

p=(stackNode*)malloc(sizeof(stackNode));

p->value=e;

p->next=topPt;

topPt=p;

}

int pop(LinkStack &topPt,int &vPt)//出栈

{stackNode *p;

if(isEmpty(topPt))return 0;

p=topPt;vPt=p->value;

topPt=p->next;

free(p);return 1;

}

void main()

{int choice=1,e,i;

LinkStack top,p;

initStack(top);

while(choice=4)

} {printf("\t1:push\n"); printf("\t2:pop\n"); printf("\t3:show the stack\n"); printf("\t4:exit\n"); scanf("%d",&choice); if(choice==1){printf("input an element(int):"); scanf("%d",&e); push(top,e); } else if(choice==2){i=pop(top,e); if(i==0)printf("Stack is empty\n"); else printf("the poped value is %d\n",e); } else if(choice==3){p=top; printf("all element:"); while(p) {printf("%3d",p->value); p=p->next; } } else if(choice!=4)printf("error\n"); }


相关内容

  • 减少农村学生化学实验操作失误的研究
  • 减少农村学生化学实验操作失误的研究 茶店乡一中化学教研组 朱宏杰.秦海增.张玲玲 减少农村学生化学实验操作失误的研究 一.课题研究的背景和意义 诺贝尔奖获得者杨振宁说过:"对人类来说,科学毕竟有百分之九十是实验活动,科学的基础是实验."而著名化学家傅鹰也曾讲过:"化学是 ...

  • 课题:中学理科实验考试评价研究
  • 课题:中学理科实验考试评价研究 项目: (一).项目研究的意义(学术价值和实践意义) (二).国内外研究现状(包括已有的主要著作.论文.研究报告及对各种代表性观点的评述) (三).总体框架和基本内容,拟突破的重点和难点问题及主要创新之处. (四).研究方法,技术路线和调研计划. (五).项目组的前期 ...

  • [财务软件应用]课程实验报告
  • <财务软件应用>课程 实验报告 20 - 20 学年 第 学期 班 级: 学 号: 姓 名: 授课教师: 实验教师: 实验学时: 实验组号: 湖北汽车工业学院 学 生 实 验 守 则 (2001年6月) 第一条 实验室是实验教学和科研的重要场所,不作它用,非实验人员,未经允许不得入内.为 ...

  • 关于水分析化学实验教学的几点看法
  • 科 教 平 台 关于水分析化学实验教学的几点看法 刘涛 (黑龙江大学水利电力学院 黑龙江哈尔滨 150086) 摘 要:分析了水分析化学实验中的选定实验项目及学生应掌握的实验技能.科学作风良好实验态度的重要性.提出改进加强这些环节的措施和方法. 关键词: 实验项目 规范操作 实验技能 实验态度和严谨 ...

  • [现代环境分析技术]实验教学大纲
  • <现代环境分析技术>实验教学大纲 一. 基本信息 课程代码:260427 实验课程名称:现代环境分析技术实验 英文名称::Modern Technique of Environmental Analysis Experiment 课程总学时::72 总学分:3 实验学时:36 适用对象: ...

  • 分析化学实验
  • 分析化学实验指导 <分析化学实验>是分析化学课程的重要组成部分,是以实验操作为主的技能课程,它具有自己的培养目标.教学思想.教学内容和方法.学生通过本课的学习,可加深对分析化学基础理论.基本知识的理解,正确和较熟练掌握分析化学实验技能和基本操作,提高观察.分析和解决问题的能力,培养学生良 ...

  • 小学五年级实验记录
  • 小学<科学>五年级上册 实验基本操作 1-1种子发芽实验(一) 一.实验内容: 种子发芽实验 二.器材: (每生)放大镜1个.绿豆种子4粒.塑料盒2个.标签4张.纸巾1块 (每组)水1杯.滴管1个 三.规范操作要点: 按照教材第4页的图和文字所示的方法和要求做实验. 四.操作建议: 1. ...

  • 扎实的理论知识造就有效实验教学
  • 扎实的理论知识造就有效科学实验教学 盘县鸡场坪镇和中希望小学 毛镜林 小学科学实验是一门理论知识比较强的学科,它要求实验教师必须有较强的科学理论知识,方能熟悉地进行科学实验操作,才能系统地对产生的实验现象进行解释,对因操作失误而产生的错误现象及实验失败的原因进行解释,才能准确.规范地对实验结论进行归 ...

  • 有机化学实验教学大纲
  • 有机化学实验教学大纲 课程名称:有机化学实验 课程编码: 111117040 英文名称:The organic chemistry experiment 学 时: 84 学 分:3.5 适用专业:理学院材料化学 课程类别:必修 课程性质: 实验 先修课程:有机化学 参考教材:<基础实验化学(有 ...

  • 2015年山西省中考理化实验操作试题及评分细则
  • 装 订 线 2015年山西省初中毕业升学理化实验操作考试 物理实验操作试题 物理试题 1 探究串联电路中各处电流的关系 物理试题 2 探究并联电路中干路电流与各支路电流的关系 物理试题 3 探究串联电路中用电器两端的电压与电源两端 电压的关系 物理试题 4 探究并联电路各支路用电器两端电压的关系 物 ...