C語言 棧 鍊錶

2021-10-01 15:39:39 字數 1215 閱讀 4228

普通鍊錶的建立:

用鍊錶構建一串數字,並輸入另乙個數插入其中。

以及鍊錶的逆序。

#include

#include

struct node //鍊錶的結構體建立

;int

main()

t=head;

k=head->next;

scanf

("%d"

,&s)

;for

(i=0

;i++i)

else

}struct node *x,

*y; x=head->next;

head->next=

null

;while

(x) num=head;

while

(num!=

null

)return0;

}

普通棧的建立:

判斷輸入的字串是不是回文字串?

#include

#include

intmain()

if(top==0)

printf

("yes");

else

printf

("no");

return0;

}

現在用鍊錶代替陣列解決上面的問題,只需要將鍊錶放到陣列應該在的位置即可:

#include

#include

#include

struct node

;int

main()

while

(a!=

'.')

;//類似棧的初始化,只不過把陣列的變化變成了鍊錶的變化。

p=head;

top=0;

mid=len/2-

1;for(i=

0;i<=mid;

++i)

if(len%2)

p=p->next;

//這裡用來判斷是奇數or偶數長的字串

while

(top)

if(top==0)

printf

("yes");

else

printf

("no");

}

C語言鍊錶實現棧

鍊錶實現帶頭結點的棧,入棧用頭插法 環境codeblocks include include include typedef int elemtype typedef struct node node,linkstack 初始化棧 linkstack initstack linkstack s 入棧...

C語言 複雜的棧(鍊錶棧)

複雜的棧 鍊錶棧 include include define datatype int 定義鍊錶棧資料型別 定義鍊錶棧結構 struct stacklink typedef struct stacklink stacklink 判斷棧是否為空 int isempty stacklink phead...

棧的鍊錶實現(C語言)

原始碼檔案位址 由前面 所述 鍊錶實現的棧在操作過程中頻繁的pop和push會伴隨著頻繁的malloc和free,伴隨著很大的系統開銷。基於此,在此實現中,通過實現乙個空閒節點鍊錶,將pop之後的鍊錶節點不釋放,而是放入空閒鍊錶freenodeptr中 當棧進行push操作的時候,先從空閒節點鍊錶中...