2014数据结构实验报告
更新时间:2023-11-01 18:14:01 阅读量: 综合文库 文档下载
课程名称:实验项目:实验地点:专业班级:学生姓名:指导教师:
数据结构 实验一 线性表 博学楼B座 学号: 2012
杨崇艳
2014年11月02日
实验一 线性表
一.实验目的
二.实验例题
[问题描述]
用链表形式存储一个字符串,插入、删除某个字符,最后按正序、逆序两种方式输出字符串。 [输入]
初始字符串,插入位置,插入字符,删除字符。 [输出]
已建立链表(字符串),插入字符后链表,删除字符后链表,逆转后链表。 [存储结构]
采用链式存储结构 [算法的基本思想]
建立链表:当读入字符不是结束符时,给结点分配存储空间,写数据域,将新结点插到表尾;插入字符:根据读入的字符在链表中找插入位置,将新结点插入到该位置之前;删除字符:根据读入的删除字符在链表中找到被删结点后,将其从链表中删除;链表逆转:从链表的第一个结点开始对所有结点处理,将每个结点的前驱变为它的后继;打印链表:从链表的第一个结点开始,依次打印各个结点的数据域。
三.程序清单
#define NULL 0
typedef struct node{ char a;
struct node *link; }node,*nodelink;
void readlink(nodelink head){ nodelink p,q; char c; p=head;
printf(\ scanf(\ if (c=='\\n') printf(\。\ while(c!='\\n')
{ q=(nodelink)malloc(sizeof(node)); q->a=c; p->link=q; p=q; scanf(\ }
p->link=NULL; }
void writelink(nodelink head) { nodelink q;
if (head->link==NULL) printf(\。\\n\ for(q=head->link;q;q=q->link) printf(\ printf(\ }
int insert(nodelink head,char k1,char k2) { nodelink p,q; p=head->link;
while(p->a!=k1&&p) p=p->link;
if(p){ q=(nodelink)malloc(sizeof(node));
q->a=k2; q->link=p->link; p->link=q; return 1; }
else { printf(\} }
int delete(nodelink head,char k) { nodelink p,q;
q=head; p=head->link;
while(((p->a)!=k)&&p){ q=q->link; p=p->link; } if(p) { q->link=p->link; return 1; }
else{ printf(\}
void opside(nodelink head) { nodelink p,q; p=head->link;
while(p->link){ q=p->link; p->link=q->link; q->link=head->link; head->link=q; } } main()
{ char k1,k2,k3; nodelink head;
head=(nodelink)malloc(sizeof(node)); head->link=NULL; readlink(head);
if (head->link!=NULL)
{printf(\ if (head->link!=NULL)
{ printf(\ k1=getch(); printf(\
printf(\ k2=getch(); printf(\
if (insert(head,k1,k2))
{printf(\ printf(\ k3=getch(); printf(\ if (delete(head,k3))
{ printf(\writelink(head); } if (head->link!=NULL)
{printf(\ writelink(head); free(head); } } }
四.运行结果
Input a linktable(a string):dfkdspogjdj↙ Build link is :dfkdspogjdj
Please input a char you want to insert after:s↙ Please input a char you want to insert:n↙ After p insert y,link is:dfkdsnpogjdj
Please input a char you want to delete:k↙ after delete p,link is:dfdsnpogjdj Opsite result is :jdjgopnsdfd
五.实验结果与分析
通过本实验,我熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现,提高分析和解决问题的能力。丰富了编程经验,提高了对顺序存储结构的知识点的理解和掌握。
课程名称:实验项目:实验地点:专业班级:学生姓名:指导教师:
数据结构 实验二 树 博学楼B座 学号: 201200
杨崇艳
2014年11月02日
实验二 树
一.实验目的
二.实验例题
[问题描述]
任意给定一棵二叉树。试设计一个程序,在计算机中构造该二叉树,并对它 进行遍历。
[输入]
一棵二叉树的结点若无子树,则可将其子树看作 “.”,输入时,按照前序序列的顺序输入该结点的内容。对 下图,其输入序列为ABD..EH...CF.I..G..。
[输出]
若为空二叉树,则输出:THIS IS A EMPTY BINARY TREE。若二叉树不空,按后序序列输出,对上例,输出结果为:DHEBIFGCA。 [存储结构]
采用二叉链表存储。 [算法的基本思想]
采用递归方法建立和遍历二叉树。首先建立二叉树的根 结点,然后建立其左右子树,直到空子树为止。后序遍历二叉树时,先遍历左子树,后遍历右子树,最后访问根结点。
三.程序清单
#include
struct node *llink,*rlink; };
typedef struct node NODE; NODE *creat() { char x; NODE *p;
scanf(\ printf(\ if(x!='.')
{ p=(NODE *)malloc(sizeof(NODE)); p->info=x;
p->llink=creat();
p->rlink=creat(); }
else p=NULL; return p; }
正在阅读:
2014数据结构实验报告11-01
格列佛游记摘抄02-20
8字押韵励志班级口号_运动会口号03-26
江西联通WCDMA正式商用资费套餐方案03-28
推荐一本书小学作文06-15
个人房屋租赁合同范本经典版-最新精选范文03-08
中国汽车备件行业市场前景分析预测年度报告(目录) - 图文01-02
第六章、会展旅游概述05-17
- 《江苏省环境水质(地表水)自动监测预警系统运行管理办法(试行)》
- 安乐死合法化辩论赛立论稿(浙大新生赛)
- 公共科目模拟试卷公务员考试资料
- 我国固定资产投资FAI对GDP的影响
- 大学生创新创业训练计划项目申请书大创项目申报表
- 完美版—单片机控制步进电机
- 2013资阳中考化学试题
- 18.两位数减一位数退位(397道)
- 工程量计算规则
- 二年级操行评语(下)
- 第3章 流程控制语句
- 浅基桥墩加固技术
- 课题研究的主要方法
- 5100软件说明书 - 图文
- 车间技术员年终总结
- 关于印发《中铁建工集团开展项目管理实验室活动方案》的通知
- 经典诵读结题报告
- 地下水动力学习题答案
- 2018年全国各地高考数学模拟试题平面解析几何试题汇编(含答案解
- 街道办事处主任2018年度述职述廉报告
- 数据结构
- 实验
- 报告
- 2014
- 厦门市2018届高三年级第一学期期末质检英语试题 - 图文
- 数字信号的最佳接收性能的研究
- 基数调整资料1:参保企业医保缴费基数申报办法
- 屋面挂瓦技术交底 - 图文
- 体育与健康理论试题之109个名词解释
- 第5章 ArcGIS Engine二次开发初级讲义 - 图文
- 最全电话号码
- 1 核酸的结构与功能 - 图文
- 黑武士和白武士的故事
- 火工品管理办法
- 广告公司管理规章制度
- 铣工实操技能训练教学大纲
- 2017-2018学年度瓜州一中高一第二学期期中考试试卷
- 移动升降机施工方案
- 幼儿英语儿歌
- 赵固一矿32号文件月度科室修改 - 图文
- 2018-2019简单民间借贷合同范本word版本(3页)
- 生涯规划档案
- 五年级第一学期体育与健康课教案(1~35课)
- 张杰module2unit1教案1