软基上机报告-链表(基础题)_第1页
软基上机报告-链表(基础题)_第2页
软基上机报告-链表(基础题)_第3页
软基上机报告-链表(基础题)_第4页
软基上机报告-链表(基础题)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ex2_1基本题1)首先创建一个单链表:从键盘读入五个整数,按输入顺序形成单链表。将创建好的链表元素依次输出到屏幕上。2)在已创建好的链表中插入一个元素:从键盘读入元素值和插入位置,调用插入函数完成插入操作。然后将链表元素依次输出到屏幕上。3)在已创建好的链表中删除一个元素:从键盘读入欲删除的元素位置(序号),调用删除函数完成删除操作。然后将链表元素依次输出到屏幕上。1、 程序流程说明1)创建一个单链表:从键盘读入五个整数,按输入顺序形成单链表。将创建好的链表元素依次输出到屏幕上。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(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 = (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;newnode-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;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;ilink; 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 应输出(上机前自己分析的结果):链表为:45 0 1 6 23链表为:45 0 12 1 6 23链表为:0 12 1 6 23 四、上机时遇到的问题(可分为编译问题和逻辑问题)*问题现象: 运行超出范围 原因:i,j值选取出现问题; 解决办法:通过改变循环的值来实现正确解问题现象: 增加元素之后仍然只能输出五位值 原因:show_list函数输出五位,而非length位;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论