1. 程式人生 > >實驗4:棧和佇列的基本操作實現及其應用——進位制轉換以及實驗總結

實驗4:棧和佇列的基本操作實現及其應用——進位制轉換以及實驗總結

一、實驗目的

1、   熟練掌棧和佇列的結構特點,掌握棧和佇列的順序儲存和鏈式儲存結構和實現。

2、      學會使用棧和佇列解決實際問題。

二、實驗內容

1、自己確定結點的具體資料型別和問題規模:

分別建立一個順序棧和鏈棧,實現棧的壓棧和出棧操作。

分別建立一個順序佇列和鏈佇列,實現佇列的入隊和出隊操作。

2、設計演算法並寫出程式碼,實現一個十將二進位制轉換成2進位制數。

3、選做題(*

設計一個模擬飯堂排隊打飯管理軟體,實現“先來先打飯”的排號叫號管理。

三、實驗步驟

1、依據實驗內容分別說明實驗程式中用到的資料型別的定義;

2、相關操作的演算法表達;

3、完整程式;

4、總結、執行結果和分析。

5、總體收穫和不足,疑問等。

四、實驗要求

1、   按照資料結構實驗任務書,提前做好實驗預習與準備工作。

2、   加“*”為選做題。做好可加分。

3、   嚴格按照資料結構實驗報告模板和規範,及時完成實驗報告。

4、   在個人主頁上發文章提交作業。

5、   實驗課會抽查3-5人,希望你可以被查到!

原始碼如下:

#include<stdio.h>
int main()
{
int a;
char s[20]; int i=0,rem;
printf("請輸入整數:\n");
scanf("%d",&a); 
do
{
rem=a%2; a=a/2;
s[i]=rem;
i++;
}while(a!=0);
printf("輸出的二進位制:");
while(i>0)
printf("%d",s[--i]); 
printf("\n");
return 0;
}

實驗結果如下:


實驗總結:

這次實驗總的來說完成的還算可以吧,不過在這次實驗中也發現了一些問題,就是雖然書上有很多都已經給出了演算法跟程式碼,但是書上的程式碼也不一定是正確的,所以下一次實驗的時候會仔細考慮的。而且書上有一些演算法是不可以直接用的,需要轉換一下方式。在主函式中,定義的時候,最好用一個,定義一下,不要一次性就定義了,這很有可能會忘記自己之前定義過什麼,從而造成思緒混亂。