- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二次报告链表讲述
高级语言课程设计报告
序号 姓名 成绩 学号 E-MAIL及电话 实习题目 第二次报告: 链表
本题不在系统中提交,直接编程即可。
学习课本p358 12.8节全部内容,要求读懂程序。
完成以下内容,使用教材节点结构和主要功能代码者提供答疑。主要代码来历不明者自行解决所有疑问。
要求迭代开发,即先编写核心代码块,验证无误后再逐步添加新的功能。
要求界面友好,给出功能菜单,用户可选择下一步操作。
完成p367思考题之(1),(2),(3)
编写函数,完成在第n个节点之后增加新节点的功能,n值由键盘输入。(注意健壮性)。
编写函数,完成在第n个节点之后删除新节点的功能,n值由键盘输入。(注意健壮性)。
编写函数,删除所有数据值为奇数的节点。(注意健壮性)。
要求每次增删节点后可以显示更新后的链表元素个数及每个节点的信息。
假设两个单链表分别有序,请将两个链表合并成一个有序链表。(选做) 评阅意见:
评阅人:
2015年 月 日
1.你的代码、注释及运行结果贴图。
2.设计体会和#include stdio.h
#include stdlib.h
struct link *AppendNode(struct link *head);//添加一个链表
void DisplyNode(struct link *head);//显示更新后的链表元素个数及每个节点的信息
void DeleteMemory(struct link *head);//释放head指向的链表中,所有节点占用的内存
struct link *DeleteNode(struct link *head, int nodeData);//删除链表中的某一节点
struct link *DeletealloddNode(struct link *head);//删除链表中的所以奇数节点
struct link *AppendNodeN(struct link *head,int n);//第n个节点之后增加新节点
struct link *DeletenNode(struct link *head, int n);//第n个节点之后删除新节点
struct link
{
int data;
struct link *next;
};
int main()
{
int i = 0;
int n,m;
char c;
struct link *head = NULL; /*链表头指针*/
printf(Do you want to append a new node(Y/N)?);
scanf( %c,c); /* %c前面有一个空格*/
while (c==Y || c==y)
{
head = AppendNode(head);
DisplyNode(head); /*显示当前链表中的各节点信息*/
printf(Do you want to append a new node(Y/N)?);
scanf( %c,c); /* %c前面有一个空格*/
i++;//计数变量,用来统计新增节点的数量
}
printf(%d new nodes have been apended!\n, i);
printf(do you want add a node at any position in the list?(Y/N):);
scanf( %c,c);
if(c==Y || c==y)
{
printf(\nInput the position of the node to be added:\n);
scanf(%d,n);//n由键盘输入
head = AppendNodeN(head,n);//在链表中第n个节点后,插入一个新的节点
DisplyNode(head);
}
printf(Input the data of the node to be deleted: );
scanf(%d,m);
head = DeleteNode(head, m);//删除指定节点,数据域中的数据m由键盘输入
DisplyNode(head);
printf(\nInput the location of the node to be deleted: );
scanf(%d,n);
head = DeletenNode(head,n);//删除
文档评论(0)