- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二:顺序表的基本操作.doc
实验二:单链表的基本操作
一、【实验目的】1、理解和掌握单链表的类型定义方法和结点生成方法。2、掌握建立单链表和显示单链表元素的算法。掌握单链表的查找算法二、【实验内容】1、建立一个单链表,并从屏幕显示单链表元素列表。删除上述单链表中指定位置的元素。typedef struct Node
{
DataType data;
struct Node *next;
} SLNode;
void ListInitiate(SLNode **head) /*初始化*/
{
/*如果有内存空间,申请头结点空间并使头指针head指向头结点*/
if((*head = (SLNode *)malloc(sizeof(SLNode))) == NULL) exit(1);
(*head)-next = NULL; /*置链尾标记NULL */
}
int ListLength(SLNode *head)
{
SLNode *p = head; /*p指向首元结点*/
int size = 0; /*size初始为0*/
while(p-next != NULL) /*循环计数*/
{
p = p-next;
size ++;
}
return size;
}
int ListInsert(SLNode *head, int i, DataType x)
/*在带头结点的单链表head的数据元素ai(0 ≤ i ≤ size)结点前*/
/*插入一个存放数据元素x的结点*/
{
SLNode *p, *q;
int j;
p = head; /*p指向首元结点*/
j = -1; /*j初始为-1*/
while(p-next != NULL j i - 1)
/*最终让指针p指向数据元素ai-1结点*/
{
p = p-next;
j++;
}
if(j != i - 1)
{
printf(插入位置参数错!);
return 0;
}
/*生成新结点由指针q指示*/
if((q = (SLNode *)malloc(sizeof(SLNode))) == NULL) exit(1);
q-data = x;
q-next = p-next; /*给指针q-next赋值*/
p-next = q; /*给指针p-next重新赋值*/
return 1;
}
int ListDelete(SLNode *head, int i, DataType *x)
/*删除带头结点的单链表head的数据元素ai(0 ≤ i ≤ size - 1)结点*/
/*删除结点的数据元素域值由x带回。删除成功时返回1;失败返回0*/
{
SLNode *p, *s;
int j;
p = head; /*p指向首元结点*/
j = -1; /*j初始为-1*/
while(p-next != NULL p-next-next!= NULL j i - 1)
/*最终让指针p指向数据元素ai-1结点*/
{
p = p-next;
j++;
}
if(j != i - 1)
{
printf(插入位置参数错!);
return 0;
}
s = p-next; /*指针s指向数据元素ai结点*/
*x = s-data; /*把指针s所指结点的数据元素域值赋予x*/
p-next = s-next; /*把数据元素ai结点从单链表中删除指*/
free(s); /*释放指针s所指结点的内存空间*/
return 1;
}
int ListGet(SLNode *head, int i, DataType *x)
/*取数据元素ai和删除函数类同,只是不删除数据元素ai结点*/
{
SLNode *p;
int j;
p = head;
j = -1;
while(p-next != NULL j i)
{
p = p-next; j++;
}
if(j != i)
{
printf(取元素位置参数错!);
return 0;
}
*x = p-data;
return 1;
}
void Destroy(SLNode **head)
{
SLNode *p, *p1;
p = *head;
while(p != NULL)
{
p1 = p;
p = p-next;
free(p1);
}
您可能关注的文档
- 实验8短时记忆保持量的测定.doc
- 实验9硝酸还原酶活性的测定.doc
- 实验9邻二氮菲分光光度法测定微量铁.doc
- 实验一、VC开发环境的使用.doc
- 实验一债券的久期和凸度.doc
- 实验一单片机的输入输出接口.doc
- 实验一印刷测试样张质量综合评价.doc
- 实验一对流传热系统及其准数关联式的测定.doc
- 实验一小型模拟发酵罐的演示试验.doc
- 实验一工具钢热处理工艺—组织—性能的系统分析.doc
- 2025年中国维他命-C乳液数据监测研究报告.docx
- 2025年中国纳米电容直流柜数据监测研究报告.docx
- 2025年中国浴室控制器数据监测研究报告.docx
- 已上传2025年事业单位工勤技能-广西-广西政务服务办事员二级(技师)历年参考题库含答案解析(5卷套.docx
- 2025年中国铜铝复合管数据监测研究报告.docx
- 2025年中国塔斯隆布数据监测研究报告.docx
- 2025年中国矩形通用波纹膨胀节数据监测研究报告.docx
- 2025年中国GPTMap油藏自动绘图软件数据监测研究报告.docx
- 2025年中国三人站综合训练器数据监测研究报告.docx
- 2025年中国PE包装塑料瓶数据监测研究报告.docx
文档评论(0)