普通鍊錶的建立:
用鍊錶構建一串數字,並輸入另乙個數插入其中。
以及鍊錶的逆序。
#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操作的時候,先從空閒節點鍊錶中...