软基上机报告-链表(基础题)

上传人:m**** 文档编号:437854827 上传时间:2024-01-18 格式:DOC 页数:5 大小:34KB
返回 下载 相关 举报
软基上机报告-链表(基础题)_第1页
第1页 / 共5页
软基上机报告-链表(基础题)_第2页
第2页 / 共5页
软基上机报告-链表(基础题)_第3页
第3页 / 共5页
软基上机报告-链表(基础题)_第4页
第4页 / 共5页
软基上机报告-链表(基础题)_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《软基上机报告-链表(基础题)》由会员分享,可在线阅读,更多相关《软基上机报告-链表(基础题)(5页珍藏版)》请在金锄头文库上搜索。

1、ex2_1基本题1)首先创建一个单链表:从键盘读入五个整数,按输入顺序形成单链表。将创建好的链表元素依次输出到屏幕上。2)在已创建好的链表中插入一个元素:从键盘读入元素值和插入位置,调用插入函数完成插入操作。然后将链表元素依次输出到屏幕上。3)在已创建好的链表中删除一个元素:从键盘读入欲删除的元素位置(序号),调用删除函数完成删除操作。然后将链表元素依次输出到屏幕上。一、 程序流程说明1)创建一个单链表:从键盘读入五个整数,按输入顺序形成单链表。将创建好的链表元素依次输出到屏幕上。2)在已创建好的链表中插入一个元素:从键盘读入元素值和插入位置,调用插入函数完成插入操作。然后将链表元素依次输出到

2、屏幕上。(让插入位前一位的指针指向新增结点,新增结点指针指向插入位置原结点,同时length加一)3)在已创建好的链表中删除一个元素:从键盘读入欲删除的元素位置(序号),调用删除函数完成删除操作。然后将链表元素依次输出到屏幕上。(让插入位置前一结点指针指向下一结点,length减一,其余不变)二、程序代码#include#include#includetypedef struct Nodeint data;struct Node *link;node;typedef struct Listnode *head;node *tail;int length;list;void creat_list

3、(list *table)int x,i;node *temp;table-head=NULL;table-tail=NULL;for(i=5;i=1;i-)printf(请输入第%d个元素:,i);fflush(stdin);scanf(%d,&x);printf(n);temp=(node*)malloc(sizeof(node);temp-data=x;temp-link=NULL;temp-link=table-head;table-head=temp;table-length=5;node * create_node(int new_node)node * temp;temp = (

4、node*)malloc(sizeof(node);temp-data = new_node;temp-link = NULL;return temp;void get(list *table)int loc,x,i;node *temp;node *newnode;temp=table-head;printf(n请输入插入位置:);scanf(%d,&loc);printf(请输入插入元素:);scanf(%d,&x);if(loctable-length|loclength+;newnode=create_node(x);if(loc=3&loc=5)for(i=2;ilink;newno

5、de-link = temp-link; temp-link = newnode;if(loc=1)newnode-link=table-head;table-head=newnode;if(loc=2)temp=table-head;newnode-link = temp-link; temp-link = newnode;void show_list(list *table)int x,i;node *temp;printf(链表为:n);temp=table-head;for(i=1;i length;i+)x=temp-data;printf(%d ,x);temp=temp-link

6、;void delete_node(list *table)int loc,i;node *temp,*t;temp=table-head;printf(n请输入删除位置);scanf(%d,&loc);if(loctable-length)printf(删除出错);else table-length-;if(loc=1)temp=temp-link;table-head=temp;if(loc2&loclength)temp=table-head;for(i=2;ilink;t=temp-link;temp-link=t-link; if(loc=table-length)for(i=2;i

7、link; temp-link=NULL;if(loc=2)temp=table-head;t=temp-link;temp-link=t-link;void main()list table;creat_list(&table);show_list(&table);get(&table);show_list(&table);delete_node(&table);show_list(&table);三、测试数据* 输入:请输入第5个元素:23请输入第4个元素:6请输入第3个元素:1请输入第2个元素:0请输入第1个元素:45请输入插入位置:3请输入插入元素:12请输入删除位置1 应输出(上机前

8、自己分析的结果):链表为:45 0 1 6 23链表为:45 0 12 1 6 23链表为:0 12 1 6 23 四、上机时遇到的问题(可分为编译问题和逻辑问题)*问题现象: 运行超出范围 原因:i,j值选取出现问题; 解决办法:通过改变循环的值来实现正确解问题现象: 增加元素之后仍然只能输出五位值 原因:show_list函数输出五位,而非length位; 解决办法:改变show_list函数五、实际运行结果: 链表为:45 0 1 6 23链表为:45 0 12 1 6 23链表为:0 12 1 6 23 六 、小结 体会*:可以改变一下让输入不只五位,同时可以考虑实现增加或删除多个元素。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 小学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号