- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构和算法综合设计实验-1实验报告.doc
电 子 科 技 大 学
实 验 报 告
学生姓名:苏魏明 学 号:
指导教师:
实验地点: 实验时间:
一、实验室名称:软件实验室
二、实验项目名称:数据结构与算法—线性表
三、实验学时:4
四、实验原理:
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。链式存储方式即可以用于表示线性结构,也可用于表示非线性结构。一般来说,在线性表的链式存储结构中,各数据结点的存储符号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。对于线性链表,可以从头指针开始,沿各结点的指针扫描到链表中的所有结点。
线性表的链接存储中,为了方便在表头插入和删除结点的操作,经常在表头结点(存储第一个元素的结点)的前面增加一个结点,称之为头结点或表头附加结点。这样原来的表头指针由指向第一个元素的结点改为指向头结点,头结点的数据域为空,头结点的指针域指向第一个元素的结点。
五、实验目的:
本实验通过定义单向链表的数据结构,设计创建链表、插入结点、遍历结点等基本算法,使学生掌握线性链表的基本特征和算法,并能熟练编写C程序,培养理论联系实际和自主学习的能力,提高程序设计水平。
六、实验内容:
使用数据结构typedef struct node {
Elemtype data;
struct node *next;
} ListNode, *ListPtr;
typedef struct stuInfo {
char stuName[10]; /*学生姓名*/
int Age /*年龄*/
} ElemType
实现带头结点的单向链表的创建、删除链表、插入结点等操作,并能实现年龄递增的两个单向链表合并一个链表,合并后的链表按年龄递减,可认为同名同年龄是同一个学生,每个学生在合并后的链表中仅出现一次。最后打印输出合并后的链表元素,验证结果的正确性。
七、实验器材(设备、元器件):
PC机一台,装有C语言集成开发环境。
八、数据结构与程序:
#include stdafx.h
#include stdio.h
#include stdlib.h
#include string.h
#define MAXCNT 50
typedef struct stuInfo{
char stuName[10];
__int64 age;
} ElemType;
typedef struct node{
ElemType data;
struct node *next;
} ListNode, *ListNodePtr;
typedef ListNodePtr List, *ListPtr;
// 创建单链表: 设线性表n个元素已存放在数组elem中,动态创建一个单链表L
// 函数返回值为整型:0表示创建成功,1表示创建失败
int list_create(ListPtr L, ElemType elem[], int n){
int result = 0, // 记录程序运行结果 0表示成功 1表示失败
i = n;
ListNodePtr p,q;
q = (ListNodePtr)malloc(sizeof(ListNode));
q-next = NULL;
while(i = 1){
p = (ListNodePtr)malloc(sizeof(ListNode));
if(!p) {result = 1; break;}
p-data.age = elem[i].age;
strcpy(p-data.stuName, elem[i].stuName);
p-next = q-next;
q-next = p;
i = i - 1;
}
(*L) = q;
return result;
}
void list_destroy(ListPtr L){
// 销毁单链表:释放单链表所占存储单元
ListNodePtr p;
while(*L){
p = (*L)-next;
free(*L);
*L = p;
}
}
void list_clear(ListPtr L) {
// 初始化:将单链表L重置为空表
ListNodePtr p=(*L)-next; // p指向第一个节点
您可能关注的文档
最近下载
- 《建设项目水资源论证导则第9部分:纺织行业建设项目SLT 525.9-2024》知识培训.pptx VIP
- 零碳园区评价技术规范.docx
- 绩效增长模式课案.ppt VIP
- 绘画治疗理论概述.ppt VIP
- 城市轨道交通工程综合接地技术规程.pdf VIP
- 2025年成人高考专升本《艺术概论》试题及答案.docx
- 内容02324离散数学全程班复习.pdf VIP
- 2024学年七年级英语教材同步单词默写表(译林版) .pdf VIP
- 低空经济产业示范区发展框架方案.docx
- GB∕T 31838.7-2021 固体绝缘材料 介电和电阻特性 第7部分:电阻特性(DC方法) 高温下测量体积电阻和体积电阻率.pdf
文档评论(0)