资源描述:
《《数据结构教学资料》数据结构实验报告模板5》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、本科实验报告课程名称:数据结构实验项目:挂序实验地点:行逸楼专业班级:软件1319学号:2013005269学生姓名:杜波指导教师:杨永强2014年12月21R实验项目(居中)一、实验目的和要求通过本次实验,掌握线性表的排序方法,并分析时间复朵度二、实验内容和原理简述题目要解决的问题是什么,并说明输入和输出数据的形式。简述存储结构和算法的基本思想。三、主要仪器设备使用的计算机:HP242G1、VS2012四、操作方法与实验步骤设计一个用链表表示的肓接选择排序算法,并用程序实现。算法说明:已知待排序初始序列用单链表存贮,头指针head指向第一个结点,从这个待排序列中
2、找出最小结点,插入headZ后,用I■来指示。I•以前为已排序序列,r以后为未排序序列。再从未排序序列中找出最小结点插入「的后而,让I•指向这个结点。反复执行这个过程,直到排好序。ftinclude#include#ineludetypedefstructnode{intx;structnode*next;}NODE;voidread(NODE*head,intn){if(n==0)return;intx;NODE*p;p=(NODE*)malloc(sizeof(NODE));head-〉next=p;sc
3、anf&x);p->x=x;read(p,n-1);}voidwrite(NODE*head,intn){NODE*p;if(n==0)return;p二head->next;printf("%d”,p-〉x);write(p,n-1);}voidpx(NODE*head,intn){辻(n==0)return;intmin;inti,s=0;NODE*p;NODE*r;NODE*t;p=head->next;r=head->next;t二head;min=p->x;for(i=0;ip->x){min=p->x;r二P;s=i;}p
4、=p->next;}for(i=0;inext;t->next=r->next;r->next=head->next;head->next=r;px(head->next,n-1);}voidmainO{intn;NODE*head;head二(NODE*)malloc(sizeof(NODE));printfC输入个数n:");scanf("%d",&n);printf("输入%d个数据:",n);read(head,n);printf("您输入的数据为:");write(head,n);printfC'排序后的数据为:"
5、);px(head,n);write(head,n);getch();}对N个关键字取整数的记录进行整序,以使所有关键字为非负数的记录排在关键字为负数的记录Z前,要求使用最少的附加空间,且算法的时间复杂度为0(N)。#incIude#incIude#incIudetypedefstructnode{intx;structnode*next;}NODE;voidread(NODE*head,intn){if(n==0)return;intx;NODE*p;p二(NODE*)maIloc(sizeof(NODE)
6、);p->next=NULL;head->next=p;scanf("%d",&x);p_〉x二x;read(p,nT);}voidwrite(NODE*head,intn){NODE*p;if(n==0)return;p=head->next;printf("%d”,p->x);write(p,n-1);}voidpx(NODE*head,intn){inti;NODE*p;NODE*r;NODE*t;p=head->next->next;r=head->next->next;t=head->next;for(i=1;ix>二0){r
7、二P;t->next二r->next;r->next二head->next;head->next二r;p二t->next;}e1se{p二p->next;t二t->next;}}}voidmain(){intn;NODE*head;head=(NODE*)ma11oc(sizeof(NODE));printfC输入个数n:");scanf("%d",&n);printfC输入%d个数据:);read(head,n);printf("您输入的数据为:");write(head,n);printfCV排序后的数据为:〃);px(head,n);writ
8、e(hea