1、1)删除单链表中全部的负数(逐个判断是不是负数,并且返回负数所在位置,删除过春哥同实验一)2)创建一个双向链表,按照冒泡排序的思路对这个双向链表进行排序,打印排序结果。(从一开始逐个比较,将比第一位大的与第一位交换位置,一直比较到最后一位然后开始对于第二位重复比较)二、程序代码 2_2#includemalloc.hstdlib.htypedef struct Node int data; struct Node *link;node;typedef struct List node *head; node *tail; int length;list;void creat_list(list
2、 *table) int x,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(int new_node) node * temp; temp = (node*)malloc(sizeof(no
3、de); temp-data = new_node;link = NULL; return temp;void get(list *table,int n) int i,loc=table-length+1; node *newnode; temp=table- newnode=create_node(n); for(i=2;ilink; newnode-link = temp-link = newnode;void show_list(list *table) printf(链表为: for(i=1;i length; x=temp-data;%d ,x);void delete_node(
4、list *table,int n) int i; node *temp,*t; if(n=1) if(n2&nlength) temp=table- for(i=2;n; t=temp-link=t- if(n=table- for(i=2; temp=temp- if(n=2) t=temp-length-;void search(list *table,int x,int a2) int i=0,j=0;=table- if(x=temp-data) a1=i; j+; if(j=0) a0=0; a1=0; else a0=1;void main() list table; int m
5、,a2; creat_list(&table); show_list(&n输入一个整数n scanf(m); search(&table,m,a); if(a0=1) delete_node(&table,a1);show_list(& elseget(&table,m);2_2(3) int i,m=0; if(nlink=temp; temp=newnode; else for(i=1;m=0; if(i m=1; else if(i=table- temp-link=newnode; m=1;2_3(1) scanf(n链表为:void search(list *table,int a2
6、) if(temp-0) j=1; break; a0=1;void paixu(list *table)int i,j,m,u; node *temp,*t,*p; temp=table- for(u=1;ui;u+) t=temp; for(j=i;jj+) temp=t; for(m=i;m if(t-(temp-data) p=temp- temp- t-link=p;table,a);for(m=1;a0=1;search(&2_3(2) struct Node *link,*last; t=(node*)malloc(sizeof(node); t=table- t-last=NU
7、LL; p=t; t=t- t-last=p; int i,j,m; node *temp,*t,*p,*q; if(t-data p=t- t-link=temp- temp-last- table-head=t;last=t-last; p=t; t=temp;/*/ t=temp; for(j=i+1; t=t- link=t;last=temp- paixu(&三、测试数据* 输入:132-45-29-7输入一个整数10741 2 3 4 5 76 应输出(上机前自己分析的结果):7 9 -2 5 -4 2 3 1-7 9 -2 5 -4 2 1 -7 9 -2 5 -4 2 1 101 2 3 4 5 6 75 9 -7 -4 3 -2 15 9 3 19 5 3 1 -2 -4 -7四、上机时遇到的问题(可分为编译问题和逻辑问题)* 问题现象:冒泡排序时出现错误 原因:循环次数出现问题,少套一个循环; 解决办法:加一个循环 问题现象: 删除负数时删错元素 原因:对于提供的删除元素位置处理不得当;通过调试中找到正确处理方法五、实际运行结果: 六 、小结 体会*:整体做起来比较困难,需要加强对于链表的练习。同时,思考对于2_2,若原链表中有多个需要处理的元素如何一并处理。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1