结构体描述病人信息c语言,信管数据结构-实验.doc

信管数据结构-实验

数据结构实验一 C语言结构体与指针

一、实验目的

巩固复习前期所学C语言的函数参数传递、指针和结构体等知识点,加强学习数据结构语言基础。

二、实验内容

实现病历查询功能。具体要求如下:

定义一个结构体描述病人病历信息(病历号,姓名,年龄,性别,症状);先输入5个病人的信息,然后输入姓名,在5个病历中进行查找,如果找到则显示该人的信息,如果没有找到,则显示“查无此人”。

假设病历类型名为patient,使用指针,请使用以下两个函数。

void readin(patient *p);//用来输入病人信息。void search(patient *p,char *x);//根据姓名查询病人病历信息,并打印出来。

三、实验源代码

此处写程序源代码,请在程序中适当注释,便于老师更快地看懂你的程序。

四、实验结果

此处写出程序运行的结果,即输入数据是什么,输出数据是什么,分析结果是否正确,如果不正确是什么原因。

五、实验心得

此处写出完成此实验后有什么收获,碰到什么因难,又是如何解决的。请不要写“这门课好难学”、“一点也不会”之类的话语,因为这对你学习并没有帮助。关键是通过实验发现自己不会的知识点,然后攻克它!

数据结构实验二 顺序表的运用

一、实验目的

1、掌握建立顺序表的基本方法。

2、掌握顺序表的插入、删除算法的思想和实现,并能灵活运用

二、实验内容

用顺序表实现病历信息的管理与查询功能。具体要求如下:

1. 利用教材中定义顺序表类型存储病人病历信息(病历号,姓名,年龄,性别,症状);要求使用头文件,程序具有输入、输出功能。

2.设计顺序表定位查找算法,完成的功能为:在线性表L中查找数据元素x,如果存在则返回线性表中和x值相等的第1个数据元素的序号;如果不存在,则返回-1。

函数定义为 int ListFind(SeqList L,char *x)

请在主函数中测试查找是否存在姓名为x的病人,并根据返回的序号打印出病人信息。

数据结构实验三 有序单链表

一、【实验目的】1、掌握建立单链表的基本方法。

2、掌握单链表的插入、删除算法的思想和实现

二、【实验内容】

仿照教材中的单链表示例,设计一个有序单链表。有序单链表的定义:

逻辑结构:有序线性表

存储结构:链式

操作集合:初始化、插入、删除、撤销

(1)ListInitiate(L) 初始化线性表,生成一个空表L。

(2)ListInsert(L,x) 在有序表L中插入数据元素x,使得新表仍然有序。

(3)ListDelete(L,x) 删除有序表L中的数据元素x,若删除成功则返回1,不成功则返回0。

(4)Destroy(L) 撤销单链表

要求:

1.有序单链表的操作集合有如下操作:初始化、插入、删除、撤销。

2.通过主函数验证所设计的有序单链表的正确性。

提示:

1.插入操作时,从链表的第一个数据元素结点开始,逐个比较每个结点的data域值和x的值,当data小于等于x时,进行下一个结点的比较;否则就找到了插入结点的合适位置,此时申请新结点把x存入,然后把新结点插入;当比较到最后一个结点仍有data小于等于x时,则把新结点插入单链表尾。

2.删除操作时,从链表的第一个数据元素结点开始,逐个比较每个结点的data域值和x的值,当data小于等于x时,进行下一个结点的比较;否则就找到了要删除的结点,删除结点后释放结点。如果到了表尾还没有找到值为x的结点,则链表中没有要删除的元素。

数据结构实验四 栈和队列的应用

一、实验目的1、掌握顺序堆栈的类型定义方法。2、掌握顺序堆栈上实现的几种基本操作。

3、掌握顺序队列的类型定义方法。

4、掌握顺序队列上实现的几种基本操作。

二、实验内容设计算法判断一个字符序列是否是回文,要求采用队列和堆栈结构。

提示:设字符数组str中存放了要判断的字符串。把字符数组中的字符逐个分别存入队列和堆栈,然后逐个出队列和退栈并比较出队列的字符和退栈的字符是否相等,若全部相等则该字符序列是回文,否则就不是回文。

三、实验源代码

四、实验结果

数据结构实验五 递归算法的实现

一、实验目的1、掌握递归原理

2、掌握一些常用问题的递归算法设计

二、实验内容1.有这样一个故事:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第30天早上想再吃时,见只剩下一个桃子了。那么你知道猴子第一天共摘了多少个桃子吗?

1)请用递归和非递归算法分别实现猴子吃桃问题的求解。

2)求解过程请用函数实现。要求能够计算:如果在第N天只剩下一个桃子了,那么第一天共摘了多少个桃子。

2. 编写折半查找算法的递归实现和

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值