棧及佇列的運算元據結構實驗報告C語言原始碼

2022-03-22 03:42:49 字數 1738 閱讀 2335

課程名稱資料結構

實驗專案名稱棧和佇列

(一)實驗目的和要求;

熟練掌握棧及佇列基本操作的實現

(二)實驗主要內容;

(1) 建立棧並進行元素(8,9,5,4)入棧,實現鏈棧的建立及入棧的基本操作;

(2) 實現元素(9,5)的出棧,實現鏈棧的出棧的操作;

(3) 建立鏈佇列,並實現元素(4,5,7,6,8)入隊,實現鏈佇列的建立,和入隊的基本操作;

(4) 實現元素(4,5,7,6,8)出隊,實現鏈佇列的出隊的基本操作

(三)主要儀器裝置

計算機,vc++高階程式語言

(四)實驗原理

棧的修改時按照先進後出的原則進行的,試驗中用到構造空棧,及入棧出棧操作。佇列是一種先進先出的線性表,只允許在表的一端插入,而在另一端刪除元素,試驗中構造隊並且入隊出隊。

(五)實驗步驟及除錯分析;

根據課本基本操作寫好源程式,基本操作在書本中已經給出,寫出主函式,除錯分析程式,找出錯誤,並修改後程式能夠執行並得出正確輸出。試驗中,有些小錯誤經常犯,比如符號,函式宣告等。

(六)實驗結果及分析;

實驗結果如下:

能夠按照實驗要求得出正確結果

(七)附錄:源程式

#include<>

#include<>

#define ok 1

#define error 0

#define overflow -2

typedef int elemtype;

typedef int status;

typedef struct qnodeqnode,*queueptr;

typedef struct linkqueue;

typedef struct lnode stacknode, *linkstack;

status initstack(linkstack top)

status isempty(linkstack top)

status push(linkstack top, elemtype e)

status pop(linkstack top, elemtype *e)

status shstack(linkstack top)

return ok;

}status initqueue(linkqueue *q)

status enqueue(linkqueue *q,elemtype e)

status dequeue(linkqueue *q,elemtype *e)

void main()

printf("\n棧頂到棧底的元素依次為;\n");

shstack(s);

elemtype b,c,d;

pop(s,&b);

pop(s,&c);

pop(s,&d);

push(s,b);

printf("\n\n出棧的元素為:");

printf("%d",c);

printf(" %d\n",d);

printf("\n現在棧中的元素為:");

shstack(s);

linkqueue q;

initqueue(&q);

elemtype a;

printf("\n\n\n請輸入5個進隊的元素:\n");

for(int i=0;i<5;i++)

printf("\n元素的出列為:\n");

for(int i=0;i<5;i++)

實驗報告04 順序棧的基本操作

實驗目的及要求 了解和掌握順序棧的特點 掌握順序棧基本操作的實現 要求完成順序棧的初始化 入棧 出棧 取棧頂元素 顯示操作的實現。實驗裝置環境及要求 pc機一台,記憶體要求128m以上,vc 6.0整合開發環境。實驗內容與步驟 1 在vc 6.0環境中新建乙個工程和c 檔案 2 實現順序棧初始化 入...

C實驗報告題目及答案

計算機程式語言c 實驗報告 班級學號姓名 指導教師 二o一一年六月 實驗一1.將雙撇號中的內容修改為漢字輸出。2 將計算改為乘和除運算 重點掌握整除取值規律 3.實現三個數排序,用不同順序和不同型別的數輸入,測試程式的正確性。程式 1 include int main 2 乘法 include vo...

C語言程式設計實驗報告2 選擇結構

福建農林大學金山學院實驗報告 系 教研室 專業年級 實驗課程 c語言程式設計姓名學號實驗室號 計算機號 實驗時間 指導教師簽字成績 實驗2 選擇結構程式設計 一 實驗目的和要求 1.了解c語言表示邏輯量的方法 2.正確使用邏輯運算子和邏輯表示式,掌握if語句和switch語句 3.結合程式掌握一些簡...