逆置鍊錶(C語言)棧和頭插法

2021-09-12 03:56:00 字數 849 閱讀 7203

本題的要求就是採用順序棧來進行逆置輸出單鏈表中的所有元素。

解:首先我們定義乙個建立鍊錶的函式用來建立乙個鍊錶,並在函式中直接對鍊錶進行資料輸入,在逆置函式中,先將鍊錶的資料一次放入到順序棧中,然後將棧中元素從棧頂開始進行輸出即可,演算法如下:

#include#include#define maxsize 100

typedef struct nodelistnode;

struct nodest;

typedef listnode* linklist;

void creatlist(linklist *head)

l -> next = null; //尾節點指標域置空

}void reserve(linklist l)

while(st.top != -1)

puts("");

}int main()

逆置鍊錶初始為空,表中節點從原煉表中依次「刪除」,再逐個插入逆置鍊錶的表頭(即「頭插」到逆置鍊錶中),使它成為逆置鍊錶的「新」的第乙個結點,如此迴圈,直至原煉表為空。

#include#includetypedef struct nodelistnode;

typedef listnode *linklist;

void creatlist(linklist *head)

l -> next = null;

} void reserve(listnode *head)

}void print(linklist head)

puts("");

}int main()

C語言 用尾插法和頭插法建立鍊錶

關於鍊錶的建立 輸出 釋放問題,具體可以看本人之前的一篇文章 c語言 建立鍊錶,輸出和釋放 這裡以將字串 i love program 放入鍊錶中為例 include include include define max 14 struct list typedef struct list node...

c語言實現頭插法建立鍊錶及鍊錶遍歷和逆置

從鍵盤輸入乙個正整數n 1到100 之後輸入n個字元並用頭插法 先輸入的資料在鍊錶的尾部 建立鍊錶,然後遍歷該鍊錶,最後對鍊錶進行逆置並遍歷。要求 1 寫乙個主函式 2 寫乙個函式建立鍊錶 3 寫乙個函式遍歷鍊錶 4 寫乙個函式逆置鍊錶 執行示例 請輸入字元個數 5請輸入第1個字元 a 請輸入第2個...

鍊錶的逆置(迭代法與逆置法)

鍊錶翻轉操作的順序對於迭代來說是從鏈頭往鏈尾,而對於遞迴是從鏈尾往鏈頭。1 非遞迴 迭代 方式 node reverselist node h return newh 原文 原文 實現如下 看了博主的 後,大致了解迭代的方法,但由於自己c語言指標的欠缺,讀起來還是有點費力。現在注釋乙個小問題 p q...