#include<stdio.h>
成都創(chuàng)新互聯是專業(yè)的黎川網站建設公司,黎川接單;提供成都做網站、網站制作,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行黎川網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
#include<stdlib.h>
#define N 9
typedef struct node{
int data;
struct node * next;
}ElemSN;
ElemSN * Createlink(int a[]){ //逆向創(chuàng)建單向鏈表
int i;
ElemSN * h=NULL, * p;
for( i=N-1;i>=0;i--){
p=(ElemSN *)malloc(sizeof(ElemSN));
p->data =a[i];
p->next=h;
h=p;
}
return h;
}
void Printlink(ElemSN * h) {
ElemSN * p;
for(p=h;p;p=p->next)
printf("%2d\n",p->data);
}
ElemSN * MoveMaxnodeToHead(ElemSN*h){
ElemSN * Pmax,* p,* Qmax,* q; //pq聯動找最大值,Pmax為最大值結點,QMax為最大值結點的前一結點
Pmax=h;
for(q=h,p=h->next;p;q=p,p=p->next){ //找最大值
if(Pmax->data<p->data){
Pmax=p;
Qmax=q;
}
}
if(Pmax!=h){ //最大值判斷是不是頭結點,不是就斷鏈掛鏈,是直接返回頭結點
Qmax->next=Pmax->next; // 先把最大值結點與鏈表斷開
Pmax->next=h; //最大值結點掛在頭結點
h=Pmax; //最大值結點作為頭結點返回
}
return h;
}
int main(void){
int a[]={3,2,5,8,4,7,9,6,1};
ElemSN * head;
head=Createlink(a,9);
head=MoveMaxnodeToHead(head);
Printlink(head);
}
分享題目:鏈表結點的移動(最大值移到頭結點)
標題來源:http://chinadenli.net/article0/gjshio.html
成都網站建設公司_創(chuàng)新互聯,為您提供、電子商務、建站公司、微信小程序、Google、定制網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯