資源描述:
《棧的順序和鏈?zhǔn)酱鎯?chǔ)的表示和實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、實(shí)驗(yàn)三棧的順序和鏈?zhǔn)酱鎯?chǔ)的表示和實(shí)現(xiàn)實(shí)驗(yàn)?zāi)康模?.熟悉棧的特點(diǎn)(先進(jìn)后出)及棧的基本操作,如入棧、出棧等。2.掌握棧的基本操作在棧的順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)上的實(shí)現(xiàn)。實(shí)驗(yàn)內(nèi)容:1.棧的順序表示和實(shí)現(xiàn)編寫一個(gè)程序?qū)崿F(xiàn)順序棧的各種基本運(yùn)算,并在此基礎(chǔ)上設(shè)計(jì)一個(gè)主程序,完成如下功能。(1)初始化順序棧(2)插入一個(gè)元素(3)刪除棧頂元素(4)取棧頂元素(5)便利順序棧(6)置空順序棧#include#include#defineMAXNUM20#defineelemtypeint//定義順序棧的存儲(chǔ)結(jié)構(gòu)typedefstr
2、uct{elemtypestack[MAXNUM];inttop;}sqstack;//初始化順序棧voidinitstack(sqstack*p){if(!p)printf("error");p->top=-1;}//入棧voidpush(sqstack*p,elemtypex){}//出棧elemtypepop(sqstack*p){}//獲取棧頂元素elemtypegettop(sqstack*p){elemtypex;if(p->top!=-1){x=p->stack[p->top];returnx;}else{printf("Underflow!
3、");return0;}}//遍歷順序棧voidoutstack(sqstack*p){inti;printf("");if(p->top<0)printf("這是一個(gè)空棧!");for(i=p->top;i>=0;i--)printf("第%d個(gè)數(shù)據(jù)元素是:%6d",i,p->stack[i]);}//置空順序棧voidsetempty(sqstack*p){}//主函數(shù)main(){sqstack*q;inty,cord;elemtypea;do{printf("第一次使用必須初始化!");printf("主菜單")
4、;printf("1初始化順序棧");printf("2插入一個(gè)元素");printf("3刪除棧頂元素");printf("4取棧頂元素");printf("5置空順序棧");printf("6結(jié)束程序運(yùn)行");printf("----------------------------------");printf("請(qǐng)輸入您的選擇(1,2,3,4,5,6)");scanf("%d",&cord);printf("");switch(cord){case1:{q=(sqstack*)malloc(
5、sizeof(sqstack));initstack(q);outstack(q);}break;case2:{printf("請(qǐng)輸入要插入的數(shù)據(jù)元素:a=");scanf("%d",&a);push(q,a);outstack(q);}break;case3:{pop(q);outstack(q);}break;case4:{y=gettop(q);printf("棧頂元素為:%d",y);outstack(q);}break;case5:{setempty(q);printf("順序棧被置空!");outstack(q);}break;
6、case6:exit(0);}}while(cord<=6);}1.棧的鏈?zhǔn)奖硎竞蛯?shí)現(xiàn)編寫一個(gè)程序?qū)崿F(xiàn)鏈棧的各種基本運(yùn)算,并在此基礎(chǔ)上設(shè)計(jì)一個(gè)主程序,完成如下功能。(1)初始化鏈棧(2)入棧(3)出棧(4)取棧頂元素(5)置空鏈棧(6)遍歷鏈棧參考代碼:#include#include#include#definenull0typedefintelemtype;typedefstructstacknode{elemtypedata;stacknode*next;}stacknode;typedefs
7、truct{stacknode*top;}linkstack;//初始化鏈棧voidinitstack(linkstack*s){s->top=null;printf("已經(jīng)初始化鏈棧!");}//鏈棧置空voidsetempty(linkstack*s){s->top=null;printf("鏈棧被置空!");}//入棧voidpushlstack(linkstack*s,elemtypex){}//出棧elemtypepoplstack(linkstack*s){}//取棧頂元素elemtypestacktop(linkstack*s
8、){if(s->top==0){printf("鏈???)