鍊錶的建立及逆序

2021-05-05 03:17:06 字數 1206 閱讀 8751

頭結點: 頭結點是為了操作的統

一、方便而設立的,放在第一元素結點之前,其資料域一般無意義(當然有些情況下也可存放鍊錶的長度、用做監視哨等等),有頭結點後,對在第一元素結點前插入結點和刪除第一結點,其操作與對其它結點的操作統一了。而且無論鍊錶是否為空,頭指標均不為空。

頭指標: 頭指標指向鍊錶的第乙個節點,若煉表有頭結點則指向鍊錶的頭結點,頭指標具有標識作用,故對頭指標常冠以鍊錶的名字。

首元結點也就是第一元素結點,它是頭結點後邊的第乙個結點。

鍊錶的建立和逆序:

#include  

#include  

#include  

typedef   struct   listlist;  

//順序建立鍊錶,有頭結點和頭指標。

list   *list_create(void)  

tail->next=null;  

return   head;  

}  //使鍊錶逆序,需有頭指標。如果有頭結點,會把頭結點也逆序了。   

list   *list_reverse(list   *head)  

while(q!=null)  

head->next=null;  

head=p;  

return   head;  

}  

void   main(void)  

轉置的其他方法: 1.  堆疊

2.  陣列

這兩種方法時間和空間效率都不高。

3. 遞迴演算法(無頭結點):

#include  

#include  

#define   malloc(x)   (x   *)malloc(sizeof(x));  

typedef   struct   lt   list;  

list*   rev(   list   *   head   )  

else   if(   !head->next   )   //只有乙個結點  

else  

}  

void   output(list   *h)  

int   main()  

output(h);  

h   =   rev(h);  

output(h);  

return   0;  

}  

逆序建立鍊錶

資料結構實驗之鍊表二 逆序建立鍊錶 timelimit 1000ms memory limit 65536k 題目描述 輸入整數個數 n,再輸入 n個整數,按照這些整數輸入的相反順序建立單鏈表,並依次遍歷輸出單鏈表的資料。輸入第一行輸入整數n 第二行依次輸入 n個整數,逆序建立單鏈表。輸出依次輸出單...

鍊錶的建立 輸出 逆序

include include typedef struct taglistnodelistnode,list void printlist list head list reverselist list head int main printlist head 輸出原始鍊錶 head revers...

逆序建立乙個鍊錶

本題要求實現乙個函式,按輸入資料的逆序建立乙個鍊錶。函式介面定義 struct listnode createlist 函式createlist利用scanf從輸入中獲取一系列正整數,當讀到 1時表示輸入結束。按輸入資料的逆序建立乙個鍊錶,並返回煉表頭指標。鍊錶節點結構定義如下 struct lis...