這是棧的結構:
進棧示意:
出棧示意:
//這是乙個鏈棧,注意與順序棧的區分
#include
"stdio.h"
#include
"stdlib.h"
#define maxsize 100
typedef
struct snode
link;
void
menu
(void
)link *
initialize
(void
)//初始化函式
intempty
(link *top)
//判棧空函式
link *
enter
(link *top,
int x)
//進棧函式
link *
out(link *top,
int*x)
//出棧函式
return top;
}int
gettop
(link *top,
int*x)
//取頂函式
intnum
(link *top)
//求元素個數函式
}return n;
}link *
clear
(link *top)
//清空函式
}return
null;}
/*void shuchu(link *top) }}
*/void
export
(link *top)
//列印函式
}int
main()
else
top=
out(top,
&x);
printf
("出棧的元素為%d\n"
,x);
break
;case4:
if(!gettop
(top,
&x))
printf
("無頂可取\n");
else
printf
("棧頂元素為:%d\n"
,x);
break
;case5:
printf
("如果要置空棧的話,請輸入y或y\n");
getchar()
;scanf
("%c"
,&yn);if
(yn==
'y'||yn==
'y')
break
;case6:
if(!num
(top)
)printf
("此棧為空\n");
else
printf
("元素的個數為%d\n"
,num
(top));
break
;case7:
if(!num
(top)
)printf
("此棧為空\n");
else
export
(top)
;//列印函式
printf
("\n");
break
;default
:printf
("\n操作失誤\n");
}printf
("請輸入序號\t");
scanf
("%d"
,&i);}
return0;
}
C資料結構 鏈棧
鏈棧的設計依賴於筆者之前設計的鍊錶,詳情請看 c資料結構 線性表之單鏈表 ifndef linkedstack h define linkedstack h include linkedlist.h typedef linked list linked stack 建立鍊錶棧 return link...
C 資料結構 鏈棧
public class linkstacknode 節點指標 public linkstacknode next public linkstacknode t d 鏈棧 public class linkstack 總長度 public int count 入棧 public void push ...
C語言 資料結構 鏈棧 鏈棧及其進棧 出棧
鏈棧 用單鏈表 帶頭結點 實現 鏈棧的進棧,相當於對單鏈表實施頭插法的插入 鏈棧的刪除,相當於對單鏈表的從頭的刪除.你懂我意思嗎?鏈式棧是一種資料儲存結構,可以通過單鏈表的方式來實現,使用鏈式棧的優點在於它能夠克服用陣列實現的順序棧空間利用率不高的特點,但是需要為每個棧元素分配額外的指標空間用來存放...