溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

鏈表的逆置(帶表頭的單向鏈表)

發(fā)布時間:2020-07-14 22:40:02 來源:網(wǎng)絡 閱讀:802 作者:閆寶通 欄目:編程語言
#include<stdio.h>
#include<stdlib.h>
#define N 9
typedef struct node{
   int  data;
   struct node * next;
}ElemSN;
ElemSN  * Createlink(int a[],int n) { 
  int i;
  ElemSN * h, * p;
          h=p=(ElemSN *)malloc(sizeof(ElemSN));
          h->next=NULL;
          for( i=0;i<N;i++){
                p=p->next=(ElemSN *)malloc(sizeof(ElemSN));
        p->data =a[i];
        p->next=NULL;
}
return h;
   }
void printlink(ElemSN * h){
     ElemSN * p;
     for(p=h;p->next;p=p->next)
   printf("%2d\n",p->next->data);
   }
void Prelink(ElemSN*h){ 
      ElemSN*p,*r;
      r=h->next; //頭指針后移,給r指針
      h->next=NULL; //h斷開,避免形成環(huán)(是一個頭指針與第一個結(jié)點的環(huán))
      while(r){//頭指針為空,鏈表遍歷完
          p=r;  //當前的結(jié)點
          r=r->next;//r后移(頭指針),保證鏈表有頭指針
          p->next=h->next;//掛鏈(逆置)
          h->next=p;//建立新的頭結(jié)點
       }
}
int main(void){    
  int a[N]={1,2,3,4,5,6,7,8,9};
  ElemSN * head;
          head=Createlink(a,9);
  Prelink(head);
  printlink(head);
}


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI