数据结构C语言版 表插入排序.doc

数据结构C语言版 表插入排序.doc

ID:61510476

大小:20.00 KB

页数:5页

时间:2021-02-08

数据结构C语言版 表插入排序.doc_第1页
数据结构C语言版 表插入排序.doc_第2页
数据结构C语言版 表插入排序.doc_第3页
数据结构C语言版 表插入排序.doc_第4页
数据结构C语言版 表插入排序.doc_第5页
资源描述:

《数据结构C语言版 表插入排序.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数据结构C语言版表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了。他只是比对方更珍惜这份感情。/*数据结构C语言版表插入排序算法10.3P267-P270编译环境:Dev-C++4.9.9.2日期:2011年2月13日*/#include#include//静态链表类型#defineSIZE100//静态链表容量typedefintKeyType;//定义关键字类型为整型typedefintInfoType;//定义其他信息的类型typedefstruct{KeyTypekey;/

2、/关键字项InfoTypeotherinfo;//其它数据项,具体类型在主程中定义}RedType;//记录类型typedefstruct{RedTyperc;//记录项intnext;//指针项}SLNode;//表结点类型typedefstruct{SLNoder[SIZE];//0号单元为表头结点intlength;//链表当前长度}SLinkListType;//静态链表类型//由数组D建立n个元素的表插入排序的静态链表SLvoidTableInsert(SLinkListType*SL,RedTypeD[],intn){inti,p

3、,q;//表头结点记录的关键字取最大整数(非降序链表的表尾)(*SL).r[0].rc.key=INT_MAX;(*SL).r[0].next=0;//next域为0表示表尾(现为空表,初始化)for(i=0;i

4、当前记录插入静态链表(*SL).r[q].next=i+1;}(*SL).length=n;}//算法10.3P270//根据静态链表SL中各结点的指针值调整记录位置,使得SL中记录按关键字//非递减有序顺序排列voidArrange(SLinkListType*SL){inti,p,q;SLNodet;p=(*SL).r[0].next;//p指示第一个记录的当前位置for(i=1;i<(*SL).length;++i){//(*SL).r[1..i-1]中记录已按关键字有序排列,第i个记录在SL中的//当前位置应不小于iwhile(p

5、)//找到第i个记录,并用p指示其在SL中当前位置p=(*SL).r[p].next;q=(*SL).r[p].next;//q指示尚未调整的表尾if(p!=i){t=(*SL).r[p];//交换记录,使第i个记录到位(*SL).r[p]=(*SL).r[i];(*SL).r[i]=t;//指向被移走的记录,使得以后可由while循环找回(*SL).r[i].next=p;}p=q;//p指示尚未调整的表尾,为找第i+1个记录作准备}}//求得adr[1..L.length],adr[i]为静态链表L的第i个最小记录的序号voidSort(

6、SLinkListTypeL,intadr[]){inti=1,p=L.r[0].next;while(p){adr[i++]=p;p=L.r[p].next;}}//算法10.18(L的类型有变)P290//adr给出静态链表L的有序次序,即L.r[adr[i]]是第i小的记录。//本算法按adr重排L.r,使其有序。voidRearrange(SLinkListType*L,intadr[]){inti,j,k;for(i=1;i<(*L).length;++i)if(adr[i]!=i){j=i;(*L).r[0]=(*L).r[i];

7、//暂存记录(*L).r[i]while(adr[j]!=i){//调整(*L).r[adr[j]]的记录到位直到adr[j]=i为止k=adr[j];(*L).r[j]=(*L).r[k];adr[j]=j;j=k;//记录按序到位}(*L).r[j]=(*L).r[0];adr[j]=j;}}voidprint(SLinkListTypeL){inti;for(i=1;i<=L.length;i++)printf("key=%dord=%dnext=%d",L.r[i].rc.key,L.r[i].rc.otherinfo,L.r[i

8、].next);}#defineN8intmain(){RedTyped[N]={{49,1},{38,2},{65,3},{97,4},{76,5},{13,6}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。