資源描述:
《王康棧和隊列.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、棧和隊列1、實驗目的(1)熟練掌握棧的邏輯結(jié)構(gòu)和操作規(guī)則,能在相應的實際問題中正確選用該結(jié)構(gòu)。(2)熟練掌握棧的2種存儲結(jié)構(gòu)實現(xiàn)方法(順序棧和鏈棧),兩種存儲結(jié)構(gòu)和基本運算的實現(xiàn)算法,注意??蘸袧M的判斷條件及它們的描述方法。(3)熟練掌握隊列的邏輯結(jié)構(gòu)和操作規(guī)范,能在相應的實際問題中正確選用該結(jié)構(gòu)。(4)掌握循環(huán)隊列與鏈隊列兩種存儲結(jié)構(gòu)的實現(xiàn),熟練掌握各種隊列基本運算的實現(xiàn)。2、實驗要求(1)順序棧的插入、刪除,棧頂數(shù)據(jù)元素的讀取。(2)鏈棧的插入、刪除,棧頂數(shù)據(jù)元素的讀取。(3)循環(huán)隊列的插入、
2、刪除。(4)鏈隊列的插入、刪除。3、實驗內(nèi)容實驗①實現(xiàn)順序棧各種基本運算(1)以順序棧作為存儲結(jié)構(gòu);(2)實現(xiàn)順序棧的入棧運算;(3)實現(xiàn)順序棧的出棧運算;(4)實現(xiàn)順序棧棧頂元素讀取。實驗②實現(xiàn)循環(huán)隊列基本運算(1)以循環(huán)隊列為存儲結(jié)構(gòu);(2)實現(xiàn)循環(huán)隊列的建立;(3)實現(xiàn)循環(huán)隊列的入隊運算;(4)實現(xiàn)循環(huán)隊列的出隊運算。4實驗程序(1)順序棧①程序main(){intn,x=1,i;printf("請輸入進棧初始化元素:(0為結(jié)束符)");while(x)在主程序中實現(xiàn)了入棧、出棧、顯
3、示棧頂元素和棧中所有元素的功能。{scanf("%d",&x);在while循環(huán)中,出現(xiàn)終止符0則,不再入棧!push(x);}top--;printf("請輸入出棧個數(shù):");scanf("%d",&n);printf("出棧元素依次為:");在for循環(huán)中,依據(jù)用戶輸入的出棧個數(shù),一個數(shù)據(jù)一個數(shù)據(jù)的出棧,直至達到用戶的要求!for(;n;n--){printf("%d",pop());}printf("請輸入進棧元素:");scanf("%d",&x);push(x);
4、printf("棧內(nèi)元素有:");for(i=0;i<=top;i++){printf("%d",stack[i]);}printf("");printf("棧頂元素為%d",stack[top]);printf("");}②實驗結(jié)果(1)循環(huán)隊列①程序intmain(){intmenu,M,aa,i,j=0;QElemTypee;SqQueues,u;InitQueue(s);InitQueue(u);intp;while(1){printf("");printf("循環(huán)隊列
5、的應用");printf("*****************************************");printf("**1、入隊運算**");printf("**2、出隊運算**");printf("**3、讀取隊元素**");printf("**4、顯示隊的長度**");printf("**5、退出**");printf("*****************************************");printf("請選擇相應操作
6、");//選擇菜單scanf("%d",&menu);switch(menu){case1:printf("請輸入您所要入隊的元素數(shù)目");scanf("%d",&aa);printf("請輸入您所要入隊的元素");for(i=0;i7、還是一部分從資料上找到,一部分自己摸索,然后和同學討論修改拼湊成的。相比以前,我感覺進步了很多,不管對錯,能夠?qū)懗霾糠殖绦颍@對我是一個極大的鼓舞。在這兩次實驗中,我慢慢感受到了數(shù)據(jù)結(jié)構(gòu)的意義,以及現(xiàn)金額程序時的樂趣,我想以后會投入更多的時間和熱情來學習它。