软基上机报告链表拓展题文档格式.docx

上传人:b****3 文档编号:13786709 上传时间:2022-10-13 格式:DOCX 页数:23 大小:17.80KB
下载 相关 举报
软基上机报告链表拓展题文档格式.docx_第1页
第1页 / 共23页
软基上机报告链表拓展题文档格式.docx_第2页
第2页 / 共23页
软基上机报告链表拓展题文档格式.docx_第3页
第3页 / 共23页
软基上机报告链表拓展题文档格式.docx_第4页
第4页 / 共23页
软基上机报告链表拓展题文档格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

软基上机报告链表拓展题文档格式.docx

《软基上机报告链表拓展题文档格式.docx》由会员分享,可在线阅读,更多相关《软基上机报告链表拓展题文档格式.docx(23页珍藏版)》请在冰豆网上搜索。

软基上机报告链表拓展题文档格式.docx

2)从键盘任意输入一个整数,在单链表中查询该数,如果单链表中已经存在这个数,就调用删除函数,删除该元素所在结点,并将单链表在删除前后的数据元素依次输出到屏幕上;

(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->

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->

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)

head

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1