本題的要求就是採用順序棧來進行逆置輸出單鏈表中的所有元素。
解:首先我們定義乙個建立鍊錶的函式用來建立乙個鍊錶,並在函式中直接對鍊錶進行資料輸入,在逆置函式中,先將鍊錶的資料一次放入到順序棧中,然後將棧中元素從棧頂開始進行輸出即可,演算法如下:
#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...