棧的鏈式存儲結構稱為鏈棧,它是運算受限的單鏈表,其插入和刪除操作僅限制在棧頂進行。
10年積累的成都網站制作、成都網站設計經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站設計后付款的網站建設流程,更有建水免費網站建設讓你可以放心的選擇與我們合作。
先將練習結果貼下

相關C代碼如下:
/*數據結構之棧*/
#include?<stdio.h>
#include?<malloc.h>
#include?<stdlib.h>
typedef?int?DataType;
/*定義棧的結構體類型*/
typedef?struct?NODE{
DataType?data;
NODE?*?pNext;
}Node,*?PNode;
typedef?struct?STACK{
PNode?pTop;
PNode?pBot;
}Stack,*?PStack;
void??InitStack(PStack);??//初始化棧
bool?isEmpty(PStack);??//判斷棧是否為空
void?Push(PStack,DataType?val);??//進棧函數
bool?Pop(PStack,DataType?*x);??//出棧操作
DataType?GetTop(PStack);??//取棧頂元素
void?show_Stack(PStack);??//列出棧的內容
void?main(){
Stack?S;
DataType?x;
InitStack(&S);??//初始化棧
Push(&S,3);?????//元素3入棧
Push(&S,4);?????//元素4入棧
Push(&S,100);???//元素100入棧
Push(&S,200);???//元素200入棧
Push(&S,2016);???//元素2016入棧
show_Stack(&S);??//顯示當前棧各個元素
if(Pop(&S,&x)){???//出棧操作,并顯示出棧的元素
printf("出棧操作成功,當前出棧的元素是%d\n",x);
}
show_Stack(&S);
printf("當前棧頂的元素是%d\n",GetTop(&S));???//顯示棧頂元素
}
void?InitStack(PStack?pS){?????????//棧的初始化,
pS->pBot=(PNode)malloc(sizeof(Node));????
if(pS->pBot?==?NULL){
printf("初始化棧失敗");
exit(-1);
}else{
pS->pTop?=pS->pBot;
pS->pBot->pNext=NULL;
}
}
bool?isEmpty(PStack?pS){
if(pS->pTop?==?pS->pBot){
return?true;
}else{
return?false;
}
}
/*進棧操作*/
void?Push(PStack?pS,int?val){
PNode?pNew?=?(PNode)malloc(sizeof(Node));
if(pNew?==?NULL){
printf("程序內存分配失敗");
exit(-1);
}else{
pNew->data=val;
pNew->pNext=pS->pTop;
pS->pTop=?pNew;
}
}
/*出棧操作*/
bool?Pop(PStack?pS,DataType?*?x){
if(isEmpty(pS)){
printf("棧里面沒有數據了.");
return?false;
}else{
PNode?p=pS->pTop;
*x=p->data;
pS->pTop=p->pNext;
free(p);
return?true;
}
}
/*獲取棧頂元素的值*/
DataType?GetTop(PStack?pS){
if(isEmpty(pS)){
printf("目前棧是空的,請稍后在試.");
exit(-1);
}else{
PNode?p=pS->pTop;
return?p->data;
}
}
/*打印棧列表*/
void?show_Stack(PStack?pS){
int?cnt=0;
PNode?P?=?pS->pTop;
printf("棧的列表信息如下:\n");
while(P?!=?pS->pBot){
printf("%d?",P->data);
P?=?P->pNext;
cnt++;
}
printf("\n棧的長度是%d:\n",cnt);
}
網頁名稱:棧的鏈式存儲及基本操作
鏈接URL:http://www.chinadenli.net/article0/pecpio.html
成都網站建設公司_創(chuàng)新互聯,為您提供App設計、品牌網站設計、外貿建站、網站改版、python、商城網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯