




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、實驗內(nèi)容:1. 編寫函數(shù),采用鏈式存儲實現(xiàn)棧的初始化、入棧、出棧操作。2. 編寫函數(shù),采用順序存儲實現(xiàn)棧的初始化、入棧、出棧操作。3. 編寫函數(shù),采用鏈式存儲實現(xiàn)隊列的初始化、入隊、出隊操作。4. 編寫函數(shù),采用順序存儲實現(xiàn)隊列的初始化、入隊、出隊操作。5. 編寫一個主函數(shù),在主函數(shù)中設計一個簡單的菜單,分別調(diào)試上述算法 實驗目的及要求:1. 掌握棧、隊列的思想及其存儲實現(xiàn)2. 掌握棧、隊列的常見算法的程序?qū)崿F(xiàn)實驗結果:-|n|x初判入出 -12 3 4.校的順序存艦出5 .初始出*瓦判???7 入挾*$ $ 出 $9 -初始化 10 判空11. ABA12. ttjPA8 出棧*13.逹有頭
2、踣點I認*14 判空*1S.ABA.*1E. tijCU*旳棧的椎式存儲 卅1.初賠化$2 判空屮氏入核羋4 出棧嘉.檯的順序存體 缶臥列的鏈式存轄g”初始化n判空m入臥6. 初始化*乩判棧空出7. 入棧審氏岀棧*;二M二二二M二二二匸二二二M二=二= 常孑巨麺碩諄看i亍*13.有頭結點臥竊14判空*I5.ABA.宙出臥*erDebugexe貽空棧棧 -初判入出 12 3 4棧的順序存儲*5 初始化*6 判???7 入棧*8岀棧* 臥列的犍式存儲* 9 初始化* 1(k判空* 11 入隊* 12出隊備選擇瘵黜作的序:2 臥列的順序存儲13 建有頭結點臥14判空15入隊16岀臥*???* 棧的鏈
3、式存儲* 1 初始化* 2 判空* 3 入棧* 4出棧冷二二二二二二二二二二二二二二二二二二* 隊列的鏈式存儲* 9 初始化* 10 判空 棧的順序存儲5 初始化6 判枝空7 入棧8出棧 臥列的順序存儲13 建有頭結點臥14判空ngsUserDebugL23456.exefl-l|x|*3 入棧7 入棧*4* =4出棧8出棧* -*臥列的穂式存儲9 初始化10 判空11 入隊12岀臥0退出 臥列的順序存儲13 逹有頭結點隊14判空15入隊16出臥*詰選擇您嶄需操作的序鳥:16 您剛才輸入的數(shù)是:枝的鏈式存儲1 初始化2劌空*9 棧的順序存儲5 初始化6 判棧空7.8.臥列的犍式存儲9 初始化1
4、0 判空11. AHA12岀隊0退出 隊列的順序存儲13 逢有頭結點臥14劌空15入臥18出隊諸選擇您崩需操作的序鳥:0* *Press any key to cont i nue-|p|x|貽空棧棧 -初判入出 12 3 4 棧的順序存儲*5 初始化*6 判???7 入棧*8岀棧* 趴列的鏈式存儲 隊列的順序存儲*9 初始化13 逹有頭結點臥*10 判空14判空*11 入隊15入隊12岀隊亠3 | I aie岀隊*U.XElIj諸選擇您嶄需操作的序號:3潔輸入一個數(shù):1您輸入的一組數(shù)是:*巾棧的鏈式存儲 棧的順序存儲*1 初始化5 初始化*2 判空6 判枝空*3 入棧7 入棧*14出棧8出棧
5、*巾臥列的鏈式存儲 隊列的順序存儲*9 初始化13 建有頭結點隊*10 判空14判空* ojMs nr 諸選擇您餅需操作的序W: 3 諳輸入一個數(shù):1 您輸入的一組數(shù)是: 棧的鏈式存儲1 初始化2 判空3 入棧4出棧* 棧的順序存儲5 初始化6 判??? 入棧8出棧巾隊列的犍式存儲9 初始化10 判空11 入臥12.WRA0健出臥列的順序存儲13 逢有頭結點臥14判空15入臥16出咲諸選擇您餅需操作的序耳:3諸輸入一個數(shù):2 您輸入的一組數(shù)是:棧的鏈式存儲1 初始化2 判空3 入棧4出棧* 棧的順序存儲5 初始化6 判棧空7 入棧8出棧* 出 *-ll x|Hl1UULl X W j 1 CJ
6、5ex6* 12岀臥* 0$退岀諳選擇您餅需操作的序號16出隊* :34諸輸入一個數(shù):2您輸入的一組數(shù)是:21$*棧的鏈式存儲1 初始化 棧的順序存儲5 初始化*2 判空6 判棧空*3 入棧7 入棧*4出棧8出棧*隊列的犍式存儲 隊列的順序存儲* *9 初始化13 逢有頭結點臥*10 判空14判空*11 入隊15入隊*12岀隊亠 Cl 1 1 t16岀咲*諸選擇您嶄需操作的序鳥:4您剛不輸入的數(shù)是:2*巾棧的鏈式存儲 棧的順序存儲*1 初始化5 初始化*2 判空6 判???3 入棧7 入棧*4出棧8出棧*曲Jn x.* 棧的鏈式存儲 棧的順序存儲*1 初始化5 初始化*2 判空6 判???3
7、入棧7 入棧*4 出棧8出棧* 隊列的犍式存儲 隊列的順序存儲*1*9 初始化13 逹有頭結點臥J*10 判空14判空*11 入隊15入隊*12岀臥A g Qi16出臥*Og退出詰選擇您嶄需操作的序鳥:5* 棧的鏈式存儲 棧的順序存儲*1 初始化5 初始化*2 判空6 判???3入棧7 入棧*4出棧8出棧*出二* 隊列的謹式存儲 隊列的順序存儲*9 初始化13 越有頭結點臥*10 判空14判空d*11 入隊15入隊*f . 隊列的順序存儲岀13 建有頭結點臥*14判空* | A 、0 fl L49 9 9C79OV 14 nD L vll LCTLJvLJ A3456.exe-l|x|*棧的鏈
8、式存儲 棧的順序存儲*1 初始化5 初始化*2 判空6 判???3 入棧7 入棧*4出棧8出棧*隊列的樋式存儲 隊列的順序存儲*9 初始化13 逹有頭結點臥I I*10 判空14判空*J*11 入隊15入隊*12岀隊亠3 1 I a16出臥*諳選擇您餅需操作的序倉:6*??眨?巾棧的鏈式存儲 棧的順序存儲*1 初始化5 初始化*2 判空6 判枝空*3 入棧7 入棧*ai4岀棧8出棧*巾隊列的鏈式存儲 隊列的順序存儲*9 初始化13 建有頭結點臥*10 判空14判空*-|g|x|*棧的漣式存儲1 初始化2 判空3 入棧4出棧 棧的順序存儲5 初始化6 判??? 入棧8出棧7號 儲 序 存 的 式
9、化 作3 專 確始空隊隊出歆艷鳳始空棧棧 隊 91OH12O 您一的棧 1234 紇 擇入入工 貪 選輸輸 $ $ $ $ $ $ $ $ $ $ 隊列的璉式存儲9 初始化10 判空臥列的順序存儲*13建有頭結點臥*14判空*15入臥*16岀隊水*棧的順序存儲*5 初始化*8 判???7 入棧*8出棧*serDebugexex|* otimeb nn 諸選擇您餅需操作的序W: 7 諳輸入一個數(shù):3 您輸入的廠一*:3一式存儲 初始化2 判空3 入棧4出棧 棧的順序存儲5 初始化6 判棧空7 入棧8出棧巾隊列的犍式存儲9 初始化10 判空11 入臥12出臥0退出 臥列的順序存儲13 建有頭結點臥
10、14判空15入臥16出咲諳選擇您餅需操作的序耳:7諸輸入一個數(shù):8您輸入的數(shù)是: 3 棧的鏈式存儲1 初始化2 判空3 入棧4出棧*棧的順序存儲5 初始化6 判??? 入棧8出棧serDebug*exeJ|x|* 隊列的樋式存儲隊列的順序存諸*9 初始化13 逹有頭結點隊*10 判空14判空*11 入隊15入隊*12岀臥16出隊*0,退出諳選擇您嶄需操作的序號:7*諸輸入一個數(shù):8您輸入的數(shù)是:38*巾棧的璉式存儲 棧的順序存儲*J1 初始化5 初始化*2 判空6 判???3入棧7 入棧*at4出棧8出棧*隊列的犍式存儲 隊列的順序存儲*9 初始化13 建有頭結點隊*10 判空14判空*11.
11、ABA15入臥*12出臥16出臥*fi lKm諸選擇您餅需操作的序電:8您剛才輸入的數(shù)是:$8d-|n|x|3*巾棧的璉式存儲 棧的順序存儲*1 初始化5 初始化*2 判空6 判???3 入棧7 入棧*1*4岀棧8出棧*隊列的璉式存儲 臥列的順序存儲*9 初始化13 建有頭結點隊*10 判空14判空11.ABA15入臥*12出臥16出咲諸選操作o退岀*棧的鏈式存儲 棧的順序存儲*1 初始化5 初始化*2 判空6 判棧空*3入棧7入棧*4出棧8出棧*隊列的鏈式存儲 隊列的順序存儲*9 初始化13 建有頭結點隊*鼾您餅需操作的序: 10OSug123456xeM-|口| 劉* 棧的鏈式存儲 棧的順
12、序存儲*4*1 初始化5 初始化*2 判空6 判棧空*3 入棧7 入棧*4 出棧8出棧* 隊列的犍式存儲 隊列的順序存儲*9 初始化13 逹有頭結點臥*10 判空14判空*11 入隊15入隊*12出隊16出臥*歸退出詰選擇您嶄需操作的序鳥:9* 棧的鏈式存儲 棧的順序存儲*1 初始化5 初始化*2 判空6 判???3入枝7入枝*4出棧8岀棧* 隊列的鏈式存儲 隊列的順序存儲*9 初始化13 建有頭結點隊*10 判空14判空*11 入隊15入隊*-|n|x|貽空棧棧 -初判入出 12 3 4 棧的順序存儲*5 初始化*6 判???7 入棧*8岀棧*臥列的鏈式存儲9 初始化10劌空11 入臥12岀
13、臥0退出 臥列的順序存儲13 建有頭結點臥14判空15入隊1B 岀隊諸選擇您嶄需操作的序鳥:11諳輸入一個數(shù):5 您輸入的一組數(shù)是:巾棧的鏈式存儲1 初始化2 判空3 入棧4出棧* 隊列的璉式存儲9 初始化10 判空 棧的順序存儲5 初始化6 判??? 入棧8出棧 隊列的順序存儲13 建有頭結點臥14判空*H:*J2dexeM-|d| x|諳選擁所需換作苗序?qū)H 諸輸入一個數(shù):5您輸入的一組數(shù)是: 棧的順序存儲5 初始化* *2 判空6 判棧空*3 入棧? 入棧*4出棧8出棧* 隊列的樋式存儲 隊列的順序存儲*9 初始化13 逢有頭結點臥*10 判空14判空*11 入隊15入隊*12岀臥ie
14、岀隊*0 退出*諸選擇您所需操作的序號:ii諸輸入一個數(shù):6您輸入的一組數(shù)是:(6*巾棧的鏈式存儲棧的順序存儲*1 初始化5 初始化*2 判空6 判棧空*3 入棧7 入棧*4出棧8出棧*隊列的旌式存儲 隊列的順序存儲*Debug123456.exe-|n|x|戯鈕始空棧棧 譚初判入岀 一 的棧1234* 臥列的犍式存儲* 9 初始化* 口判空* 11 入臥* 12出咲售選擇詼做作的序:12 臥列的順序存儲13 建有頭結點臥14判空15入隊1B岀臥*您剛才輸入的一組數(shù)是:6 5* 棧的鏈式存儲* 1 初始化* 2 判空* 3 入棧* 4出棧冷二二二二二二二二二二二二二二二二二二* 隊列的鏈式存儲
15、* 9 初始化* 10 判空 棧的順序存儲5 初始化6 判棧空7 入棧8出棧 臥列的順序存儲13 建有頭結點臥14判空6 棧的順序存儲*5 初始化*6 判???? 入棧*8岀棧*icuments and Settings UserDebug 123456.exe-l|x|化剛才輸入的1組數(shù)是:65*棧的鏈式存儲 棧的順序存儲*1 初始化5 初始化*2 判空6 判???3 入棧7 入棧*4出棧8出棧*巾隊列的璉式存儲 隊列的順序存儲*9 初始化13 建有頭結點隊*10 判空14判空*11.ABA15入臥*12岀隊A| 1 116出隊*VU眶B請選擇您餅需操作的序鳥:13*巾棧的鏈式存儲 棧的順序
16、存儲*1 初始化5 初始化*1*2 判空6 判???1*3 入棧7 入棧*4出棧8出棧* 隊列的鏈式存儲 隊列的順序存儲*9 初始化13 建有頭結點臥zJ*10 判空14判空*-|p| x|3棧的鏈式存儲1 初始化2 判空3入棧4出棧 棧的順序存儲5 初始化6 判??? 入棧8岀棧隊列的桂式存儲9 初始化10 判空11 入臥12出臥 隊列的順序存儲13 建有頭結點臥14判空15 入臥16出咲0退岀* 棧的鏈式存儲* 1初貽化* 2判空* 3入棧* 4出棧 棧的順序存儲*5 初始化*6 判棧空*7 入棧*8岀棧*12出隊薔選揮諺作的序:13*諳選擇嫁漏撫作的序?qū)懀?4 隊空!.exe* 棧的鏈式
17、存儲1 初始化2 判空3 入棧4出棧 棧的順序存儲5 初始化6 判??? 入棧8岀棧 隊列的犍式存儲9 初始化10 判空11. ARA12. WRA 0題岀 隊列的順序存儲13 建有頭結點臥14判空15 入臥16出咲*諸輸入一個數(shù):7 您輸入的數(shù)是:7 棧的漣式存儲 1 初始化 2劌空 3 入棧 4出棧*棧的順序存儲5 初始化6 判??? 入棧8出棧*-|口|*|w.棧的褲式存橋g.挨的順庫存儲$1 初始化5 韌贈化w2.判空E.判???3 入棧7 入祓Ht肛出棧8.岀棧$命.臥列的龍式存儲.臥列的順序存橋$9 初始化詔建有頭結點耿$10-判空14,判空$tl.AlU15.ARA$12, m1
18、6.出臥th退出$您輸入的數(shù)星:7諸選擇您崩需操作的序嗒:15 諳輸A-t數(shù)汗 您輸入的數(shù)是:7 挨的璉式存儲出出出*出$ Ht $ Hi $ Ht $ Ht $1-初始化 匚判空3.入核4 出棧嘉.棧的順序存儲5.初垢化E 判???.入棧S出核商臥列的鏈式存楮9.初始化io.IS.肌列的順序存瞎 W.淫有頭結點I認14判空9Documents and Set血gUseADebu叭1234前 |口|x詰選擇席所需操作的序號:4 諸輸入一個數(shù)汕您輸入的數(shù)星:19w .棧的旌式存儲.核的順序存儲*匚初始化5 初賭化w襄判空E.判棧空$3 入枝7 入核*W肛出棧8.岀鶴*:仍.臥列的褪式存儲.臥列的
19、順序存橋*$丈初始化規(guī)逹有頭結戌戰(zhàn)W血判空14,判宰*$H 入隊15 入臥*卅1匸出BA出o.if ill諸選擇您崩需操作的序?qū)?您剛才輸入的數(shù)是:1B.出臥*!:ie*3訊命.橫的德式存儲也.橫的順序存儲$1 初始化5 初贈化沖2-判空6.判桟空$h入枝人入棧冊咔4.出橫g.出棧*床命.臥列的懿式存儲也.臥列的順序存諸*旦$初始化W逹有頭結點氏#include vstdio.h #include #define MAXSIZE 80 typedef struct int data80;int top; SeqStack; typedef struct lnode int data;struc
20、t lnode *next; StackNode,*LinkStack; typedef structint data80;int front,rear;int num; C_SeQueue; typedef struct node int data;struct node *next; QNode; typedef struct QNode *front,*rear; LQueue; void menu() printf(n);printf(t*.棧的鏈式存儲| .棧的順序存儲*n);printf(t*1.初始化|5.初始化*n);printf(t*2.判空|6.判???n);printf(
21、t*3.入棧|7.入棧*n);printf(t*4.出棧|8.出棧*n);printf(t* = *n);printf(t*.隊列的鏈式存儲|.隊列的順序存儲*n);printf(t*9.初始化|13.建有頭結點隊*n);printf(t*10.判空|14.判空*n);printf(t*11.入隊|15.入隊*n);printf(t*12.出隊|16.出隊*n);printf(t*0,退出|*n);printf(t 請選擇您所需操作的序口.號:);LinkStack Init_LinkStack()StackNode *L;L=(StackNode*)malloc(sizeof(StackNo
22、de); L-data=100;L-next=NULL;return L;int Empty_LinkStack(LinkStack top)if(top-next=NULL) return 1;else return 0;LinkStack Push_LinkStack(LinkStack top,int x)StackNode *s; s=(StackNode*)malloc(sizeof(StackNode); s-data=x;s-next=top-next; top-next=s; return top;LinkStack Pop_LinkStack(LinkStack top,in
23、t *s)StackNode *p;int j=0; p=top-next; if(p!=NULL) *s=p-data;top-next=p-next; free(p); return top;SeqStack * init_SeqStack() SeqStack *S; S=(SeqStack*)malloc(sizeof(SeqStack); S-top=-1; return S;int Empty_SeqStack(SeqStack *S)if(S-top=-1) return 1;else return 0;int Push_SeqStack(SeqStack *S,int x) i
24、f(S-top=80-1) return(0);elseS-top+;S-dataS-top=x; return(1);int Pop_SeqStack(SeqStack *S,int *p)if(Empty_SeqStack(S)=1) return 0;else*p=S-dataS-top;S-top-;return 1;C_SeQueue *init_SeQueue()C_SeQueue *q; q=(C_SeQueue*)malloc(sizeof(C_SeQueue); q-front=q-rear=80-1;q-num=0;return q;int In_SeQueue(C_SeQ
25、ueue *q,int x)if(q-num=80) return(-1);else q-rear=(q-rear+1)%80; q-dataq-rear=x; q-num+;return(1);int Out_SeQueue(C_SeQueue *q,int *p)if(q-num=0)return -1;else q-front=(q-front+1)%80; *p=q-dataq-front; q-num-;return 1;int Empty_SeQueue(C_SeQueue *q)if(q-num=0) return 1;else return 0;LQueue *Init_LQu
26、eue()LQueue *q;QNode *p;q=(LQueue*)malloc(sizeof(LQueue); p=(QNode*)malloc(sizeof(QNode); p-next=NULL;q-front=q-rear=p;return q;void In_LQueue(LQueue *q,int x)QNode *p; p=(QNode*)malloc(sizeof(QNode); p-data=x;p-next=NULL;q-rear-next=p;q-rear=p;int Empty_LQueue(LQueue *q)if(q-front=q-rear) return 1;
27、else return 0;int Out_LQueue(LQueue *q,int *s)QNode *p;if(Empty_LQueue(q)=1)return 0;elsep=q-front-next; q-front-next=p-next; *s=p-data;free(p); if(q-front-next=NULL) q-rear=q-front;return 1;void main()int n,m=1;LinkStack L=NULL;SeqStack *S;C_SeQueue *Q;LQueue *LQ=NULL;while(m)menu();scanf(%d,&n);sw
28、itch(n)case 1: L=Init_LinkStack();break;case 2:StackNode *p=L-next; int flag; flag=Empty_LinkStack(L); if(flag=0)while(p)printf(%5d,p-data); p=p-next;elseprintf(t 棧空 !n);break;case 3:LinkStack p;int x;printf(t 請輸入一個數(shù) :); scanf(%d,&x); L=Push_LinkStack(L,x); p=L-next;printf(t 您輸入的一組數(shù)是 :); while(p)pri
29、ntf(%5d,p-data); p=p-next;break;case 4:int x,*s;LinkStack p;s=&x;L=Pop_LinkStack(L,s); p=L-next;printf(t 您剛才輸入的數(shù)是 :); while(p)printf(%5d,p-data); p=p-next;printf(%5dn,x);break;case 5:S=init_SeqStack();break;case 6:int i,success; success=Empty_SeqStack(S); if(success!=1) for(i=0;itop;i+) printf(%5d,S
30、-datai);elseprintf(t ???!n);break;case 7:int i,success;int x;printf(t 請輸入一個數(shù) :); scanf(%d,&x); success=Push_SeqStack(S,x);printf(t 您輸入的數(shù)是 :);if(success=1)for(i=0;itop;i+)printf(%5d,S-datai);elseprintf(t 棧滿 !n);break;case 8:int i,success;int x,*p;p=&x; success=Pop_SeqStack(S,p); printf(t 您剛才輸入的數(shù)是 :); if(success=1)for(i=0;itop;i+)printf(%5d,S-datai);printf(%5dn,x);elseprintf(t ???!n);break;case 9:Q=init_SeQueue();break; case 10:int i,flag,number; flag=Empty_SeQueue(Q); number=Q-num;if(flag!=1)for(i=(Q-front+1)%80;number0;number-,i=(i+1)%80)printf(t 請輸入一個數(shù) :%5d,Q-dat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廈門裝修設計合同范本
- 廚房工程漏水合同范本
- 勞務合同范本文字
- 廠房監(jiān)控維修合同范本
- 農(nóng)機安全協(xié)議合同范本
- 個人法人授權委托書
- 制作道路標牌合同范本
- 廠房燈采購安裝合同范本
- 勞動單包合同范例
- 工程地質(zhì)與土力學測試題(附參考答案)
- 急危重癥護理學4課件
- 新疆民族發(fā)展史(精簡)
- 華為機器視覺好望系列產(chǎn)品介紹
- 多重耐藥護理查房
- 《旅游經(jīng)濟學》全書PPT課件
- 中國醫(yī)院質(zhì)量安全管理 第3-5部分:醫(yī)療保障 消毒供應 T∕CHAS 10-3-5-2019
- 安全評價理論與方法第五章-事故樹分析評價法
- CoDeSys編程手冊
- 幼兒園一日活動流程表
- 中國民俗知識競賽題(附答案和詳細解析)
- 散裝水泥罐體標準資料
評論
0/150
提交評論