软基上机报告-链表(拓展题)Word格式文档下载.doc
《软基上机报告-链表(拓展题)Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《软基上机报告-链表(拓展题)Word格式文档下载.doc(18页珍藏版)》请在冰豆网上搜索。
(search返回重复的位置,然后删除(同实验一))
如果单链表中不存在这个数,就调用插入函数,将这个数插入到单链表尾,并将单链表在插入前后的数据元素依次输出到屏幕上。
(同实验一,直接加在链表末尾)
3)判断插入元素与表内元素的大小,如temp->
data<
x<
temp->
link->
data,则插入temp后
2_3
1)删除单链表中全部的负数(逐个判断是不是负数,并且返回负数所在位置,删除过春哥同实验一)
2)创建一个双向链表,按照冒泡排序的思路对这个双向链表进行排序,打印排序结果。
(从一开始逐个比较,将比第一位大的与第一位交换位置,一直比较到最后一位然后开始对于第二位重复比较)
二、程序代码
2_2
#include<
stdio.h>
malloc.h>
stdlib.h>
typedefstructNode{
intdata;
structNode*link;
}node;
typedefstructList{
node*head;
node*tail;
intlength;
}list;
voidcreat_list(list*table)
{
intx,i;
node*temp;
table->
head=NULL;
tail=NULL;
length=0;
x=1;
scanf("
%d"
&
x);
for(i=0;
x!
=0;
i++)
{
fflush(stdin);
printf("
\n"
);
temp=(node*)malloc(sizeof(node));
temp->
data=x;
link=NULL;
link=table->
head;
table->
head=temp;
length++;
}
}
node*create_node(intnew_node)
node*temp;
temp=(node*)malloc(sizeof(node));
temp->
data=new_node;
link=NULL;
returntemp;
voidget(list*table,intn)
inti,loc=table->
length+1;
node*newnode;
temp=table->
newnode=create_node(n);
for(i=2;
i<
loc;
{
temp=temp->
link;
newnode->
link=temp->
temp->
link=newnode;
voidshow_list(list*table)
printf("
链表为:
for(i=1;
i<
=table->
length;
x=temp->
data;
%d"
x);
voiddelete_node(list*table,intn)
inti;
node*temp,*t;
if(n==1)
if(n>
2&
&
n<
table->
length)
temp=table->
for(i=2;
n;
t=temp->
link=t->
if(n==table->
{ for(i=2;
temp=temp->
temp->
if(n==2)
t=temp->
length--;
voidsearch(list*table,intx,inta[2])
inti=0,j=0;
=table->
if(x==temp->
data)
{a[1]=i;
j++;
}
if(j==0)
{a[0]=0;
a[1]=0;
else
a[0]=1;
voidmain()
listtable;
intm,a[2];
creat_list(&
table);
show_list(&
\n输入一个整数\n"
scanf("
m);
search(&
table,m,a);
if(a[0]==1)
delete_node(&
table,a[1]);
show_list(&
else{
get(&
table,m);
2_2(3)
inti,m=0;
if(n<
newnode->
link=temp;
temp=newnode;
else
for(i=1;
m==0;
if(i<
length&
n&
=temp->
{
m=1;
}
elseif(i==table->
{ temp->
link=newnode;
m=1;
2_3
(1)
node*tai