三九宝宝网宝宝百科宝宝知识

程序是要按照结点第一个成员的大小对结点排序并打印链表但出

02月07日 编辑 39baobao.com

[如何按多个列或行进行排序]当某些数据要按一列或一行中的相同值进行分组,然后您将对该组相等值中的另一列或另一行进行排序时,您可能按多个列或行进行排序。例如,如果您有一个“部门”列和一个“雇员”列...+阅读

以前写过双向链表交换任意结点的程序,后来写了个双向链表排序的程序,没用边输入边排序的思想,是输入完毕后我按照选择法排序的思想对链表的结点进行交换.是地址交换.#include stdio.h typedef strUCt Link/*双向链表结构体*/ { int data; struct Link *lift; struct Link *right; }linkx,*linky; linky Init();/*建立双向链表*/ void PrLink(linky p);/*输出双向链表*/ linky Sort(linky head);/*对双向链表排序*/ linky Swap(linky head,linky one,linky two);/*任意交换双向链表两个结点的地址*/ void main(void) { linky head; head=Init(); head=Sort(head); PrLink(head); } linky Init()/*建立链表*/ { linky p,q,head; int n=0; head=p=q=(linky)malloc(sizeof(linkx)); clrscr(); printf("please input 10 num: "); scanf("%d",p-data);/*输入数据*/ head-lift=NULL; n++; while(n!=10)/*一直输入到规定的数字个数停止*/ { q=p; p=(linky)malloc(sizeof(linkx)); scanf("%d",p-data);/*输入数据*/ q-right=p; p-lift=q; n++; } p-right=NULL; return(head); } linky Swap(linky head,linky one,linky two)/*任意交换两个结点*/ {linky temp; if(one-lift==NULLtwo-right==NULL)/*首和尾巴的交换*/ { if(one-right==two)/*只有两个结点的情况下*/ { two-right=one; two-lift=NULL; one-lift=two; one-right=NULL; head=two; } else/*有间隔的首尾交换*/ { one-right-lift=two; two-lift-right=one; two-right=one-right; one-lift=two-lift; two-lift=one-right=NULL; head=two;/*尾结点成为头结点*/ } } else if(two-right==NULL)/*尾和任意一个交换*/ { if(one-right==two)/*交换最后两个结点*/ { one-lift-right=two; two-lift=one-lift; two-right=one; one-lift=two; one-right=NULL; } else/*和前面其他结点交换*/ { temp=two-lift; temp-right=one; one-lift-right=two; one-right-lift=two; two-lift=one-lift; two-right=one-right; one-lift=temp; one-right=NULL; } } else if(one-lift==NULL)/*头和任意一个交换*/ { if(one-right==two)/*交换头两个结点*/ { two-right-lift=one; one-right=two-right; one-lift=two; two-right=one; two-lift=NULL; head=two; } else/*头结点和后面其他结点交换*/ { temp=one-right; temp-lift=two; one-lift=two-lift; one-right=two-right; two-lift-right=one; two-right-lift=one; two-right=temp; two-lift=NULL; head=two;/*交换的结点成为头结点*/ } } else/*当中的任意两个交换*/ { if(one-right==two)/*交换连在一起的两个结点*/ { temp=one-lift; one-lift-right=two; one-right-lift=two; one-lift=two; one-right=two-right; two-right-lift=one; two-right=one; two-lift=temp; } else/*交换隔开的两个结点*/ { one-lift-right=two; one-right-lift=two; one-lift=two-lift; temp=one-right; one-right=two-right; two-lift-right=one; two-right-lift=one; two-right=temp; two-lift=one-lift; } } return(head); } linky Sort(linky head)/*对链表排序*/ { linky i,j,t,p; int max; p=head; for(i=p;i-right!=NULL;i=i-right)/*用选择法的思想对这些结点排序*/ { max=i-data; for(j=i-right;j!=NULL;j=j-right) if(j-datamax) { max=j-data; t=j; } if(max!=i-data)/*如果没有找到比i小的结点*/ { head=Swap(head,i,t);/*因为最终返回的是头结点,而头结点又有可能变化,所以每次头结点返回*/ i=t; } } return(head); } void PrLink(linky p)/*输出链表*/ { linky q; printf("Now the link: "); do { q=p; printf("%d ",p-data); p=p-right; free(q);/*释放输出结点*/ } while(p!=NULL); getch(); }

以下为关联文档:

c语言综合设计课题:排序求平均值包括将数拆散求奇偶数求#include #include #define MAXLEN 100void ReadDat(int arr[], int nlen); void RandNum(int arr[], int nlen);void jsSort(int arr[], int nlen); void WriteDat(); int...

c如何进行冒泡排序/**************************************************/ /* 函数功能:冒泡排序算法 */ /* 函数参数:结构类型table的指针变量tab */ /* 函数返回值:空 */ /* 文件名:bubbsort.cp...

wps excel表格按日期排序如何按日期排序wps excel表格按日期排序方法: 1、全部选中你需要排序的区域; 2、在菜单栏找到“数据”,点击它; 3、再在“排序和筛选”栏点击“排序”按钮; 4、在弹出窗口里,设置主要关键词选...

wps表格可以设置排序wps表格排序设置: 1、选中需要排序的数字,自动出现小感叹号图标,按一下,再点击【转换为数字】。 2、此刻选中列,【排序】-【升序排序】。 3、如果需要依照数值大小,把整个表格全...

让孩子学会110的排序的方法1、看图识字结合以图为主、以文为辅的短小故事,引导幼小儿童认识图文中对应明显的字,并根据图画的意思猜出文字。e68a84e8a2ade799bee5baa631333339663931或者,找一些文字浅显...

浅谈如何通过数学排序活动有效促进幼儿思维能力的发展在幼儿思维游戏活动实施中,我们将“在思维游戏中促进幼儿各种能力的发展”作为切入点,将幼儿思维教育与其他能力的发展有机融合、相互渗透,探索和建立我园幼儿的思维教育方法,并...

微信排序怎么设置微信通讯录根据英文字母顺序排序,我们可以通过修改通讯录好友的备注来实现自定义排序。如果想要前置部分通讯录好友,可以将其设置为【星标朋友】,星标朋友会置顶显示在通讯录上...

VB中找不到数据排序函数高手请帮帮忙VB在数据库应用上排序应该没问题,可采用SQL查询语句来实现排序。用ADO数据控件,对其属性RecordSource赋SQL查询语句值: Private Sub Form_Load() SQL = 'select feild1,feild2...

C排序有哪几种最常用最好用在C++排序中,最常用、最好用的有 1. 冒泡排序(bubble sort),时间复杂度为O(n^2); 2. 鸡尾酒排序(Cocktail sort,双向的冒泡排序),时间复杂度为O(n^2); 3. 快速排序(Quick sort,是对冒...

推荐阅读
图文推荐