單鏈表的逆序儲存

2021-07-23 03:44:17 字數 1281 閱讀 8460

在實際應用中,經常需要用到逆序儲存。而當使用鍊錶時,逆序儲存的優勢更加突出,在這裡,我將實現單鏈表的逆序儲存,並且還將實現順序儲存,用以比較。
**部分:

//逆序儲存

#include

#include

struct list ;

struct list * creatlist1(int n);

void print(struct list *l,int n);//列印

int main()

//逆序儲存的鍊錶

/*例如輸入12345

輸出54321

*/struct list * creatlist1(int n)

l->next=null;//建立乙個帶有頭節點的鍊錶

for (i=n;i>0;i--)

scanf("%d",&p->data);

p->next=l->next;//將每乙個新節點,插入在頭節點之後

l->next=p;

}return l;

}void print(struct list *l,int n)

}

//順序儲存

#include

#include

struct list ;

void print(struct list *l,int n);//列印

struct list *creatlist2(int n);

int main()

//按順序儲存

//例如 輸入12345 輸出12345

struct list *creatlist2(int n)

l->next=null;

t=l;

for (i=0;istruct list *)malloc(sizeof(struct list ));

if (p==null)//記憶體分配失敗

ps:**中沒有加相應提示,可讀性教差,見諒!!

通過比較不難看出,所謂的逆序儲存,就是將每一次建立的新節點插入在頭節點之後。

單鏈表逆序

include include typedef struct student student typedef struct list list,list list createlist void paixu list l 比較笨拙的一種方法 list reverse list l int main ...

單鏈表逆序

第二個題目是很經典的 單鏈表逆序 問題。很多公司的面試題庫中都有這道題,有的公司明確題目要求不能使用額外的節點儲存空間,有的沒有明確說明,但是如果面試者使用了額外的節點儲存空間做中轉,會得到乙個比較低的分數。如何在不使用額外儲存節點的情況下使乙個單鏈表的所有節點逆序?我們先用迭代迴圈的思想來分析這個...

單鏈表逆序

很經典的 單鏈表逆序 問題。很多公司的面試題庫中都有這道題,有的公司明確題目要求不能使用額外的節點儲存空間,有的沒有明確說明,但是如果面試者使用了額外的節點儲存空間做中轉,會得到乙個比較低的分數。如何在不使用額外儲存節點的情況下使乙個單鏈表的所有節點逆序?我們先用迭代迴圈的思想來分析這個問題,鍊錶的...