- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
云南昆明中豪置业一个真正意义上的城市运营商.doc
ex2:链表的插入与删除
1)首先创建一个单链表:从键盘读入五个整数,按输入顺序形成单链表。将创建好的链表元素依次输出到屏幕上。
2)在已创建好的链表中插入一个元素:从键盘读入元素值和插入位置,调用插入函数完成插入操作。然后将链表元素依次输出到屏幕上。
3)在已创建好的链表中删除一个元素:从键盘读入欲删除的元素位置(序号),调用删除函数完成删除操作。然后将链表元素依次输出到屏幕上。
4)从键盘任意输入一个整数,在单链表中查询该数,如果单链表中已经存在这个数,就调用删除函数,删除该元素所在结点,并将单链表在删除前后的数据元素依次输出到屏幕上;如果单链表中不存在这个数,就调用插入函数,将这个数插入到单链表尾,并将单链表在插入前后的数据元素依次输出到屏幕上
软件技术基础上机实验报告
姓名:肖燕平 学号:2011019090028
上机实验 二
Ex2_1(链表的创建和插入删除)
#includestdio.h
#include malloc.h
typedef struct node_type //定义链点
{
int data;
struct node_type *next;
}node_type;
typedef struct list_type //定义链表
{
node_type *head;
node_type *tail;
int length;
} list_type;
int read()
{
int x;
scanf(%d,x);
return x;
}
void error(int x)
{
switch(x)
{
case 1:
printf(\nthe place of the data is wrong ,please input the place again\n);
break;
}
}
void creat_list(list_type *lianbiao) //创建链表
{
node_type *p,*s; //注意此处的指针要为链点结构体类型
int x;
lianbiao-head=(node_type*)malloc(sizeof(node_type));
lianbiao-length=0;
p=lianbiao-head;
while(lianbiao-length5) //输入五个数
{
scanf(%d,x);
s=(node_type*)malloc(sizeof(node_type));
s-data=x;
p-next=s;
p=s; //在链点连接上出现了问题导致后面显示链表时也出问题
lianbiao-length++;
}
p-next=NULL;
lianbiao-tail=p;
}
void show_list(list_type *lianbiao) //把链表元素打印出来
{
node_type *p;
p=lianbiao-head-next;
printf(\nThe linked list is\n\n);
while(p!=NULL)
{
printf(%d ,p-data);
p=p-next; //p往下走一步
}
printf(\nThe length of this linked list is %d\n,lianbiao-length);
}
void insert_list(list_type *lianbiao,int newdata,int place)
{
node_type *newnode,*p;
int i=0;
newnode=(node_type*)malloc(sizeof(node_type));
newnode-data=newdata;
p=lianbiao-head;
while(lianbiao-length+1place||place1)//判断插入的位置是否正确
{
error(1);
place=read(); //位置错误则重新输入位置
}
while(iplace-1) //使p指针指向插入位置的前一个
{
p=p-next;
i++;
}
newnode-next=p-next; //插入链点
p-next=newnode;
if(newnode-next==NULL)
{
lianbiao-tail=newnode; //若插入的位置为表尾,则改变尾指针
}
lianbiao-leng
文档评论(0)