資料結構實驗專案三 佇列的基本操作應用

2021-09-29 13:46:51 字數 1588 閱讀 8850

課程名稱:資料結構

實驗目的:

1.掌握佇列的定義及實現;

2.掌握利用佇列的基本操作。

實驗要求:

1、    使用鏈式結構完成佇列的各種基本操作;

2、    補充完善教材81頁的舞伴問題。

實驗專案名稱:佇列的基本操作應用

實驗過程:

1、    先建立乙個舞者佇列,依次往佇列中新增人員資訊(8個人,5男3女);

2、    分別建立男女佇列;

3、    從舞者佇列中依次將隊首元素出隊並判斷其性別並新增至男隊(5人)或女隊(3人);

4、    分別從男隊和女隊出隊隊首元素並配對輸出;(男隊女隊分別3人)

5、    將未完成的一隊隊首元素輸出(男隊的隊首成員名稱)。

實驗結果:

輸入:8人資訊(a,b,c,d,e,f,g,h)

輸出:the dancepartners:

a---b

c---d

e---f

g is waiting for a partner.

實驗分析:

1.佇列的操作特點;

2.列舉除錯執行過程**現的錯誤並分析原因。

要求:(1) 程式要新增適當的注釋,程式的書寫要採用

縮排格式

。(2) 程式要具在一定的健壯性,即當輸入資料非法時,程式也能適當地做出反應。

(3) 程式要做到介面友好,在程式執行時使用者可以根據相應的提示資訊進行操作。

(4) 上傳源程式到課堂派。順序表的源程式儲存為

dancepartner.cpp

#includeusing namespace std;

#define ok 1

#define error 0

#define overflow -2

#define maxqsize 100

typedef int status;

typedef struct

person;

typedef person qelemtype;

typedef struct

sqqueue;

status initqueue(sqqueue &q)

status enqueue(sqqueue &q,qelemtype e)

status dequeue(sqqueue &q,qelemtype &e)

qelemtype gethead(sqqueue q)

status queueempty(sqqueue q)

void dancepartner(person dancer,int num)

cout<<"the dancing partners are:\n";

while(!queueempty(fdancers)&&!queueempty(mdancers))

if(!queueempty(fdancers))

else if(!queueempty(mdancers))

}int main()

dancepartner(dancer,num);

return 0;

}

資料結構實驗專案三 佇列的基本操作應用

本 設計了變數n,即n個舞伴。如下 include include include include define maxqsize 100 using namespace std typedef struct 跳舞者個人資訊 person typedef struct 佇列的順序儲存結構 sqque...

學習筆記 資料結構(三) 佇列和棧

用python實現棧 棧的儲存順序是先入後出。class stack object def init self self.stack def push self,value 進棧 def pop self 出棧 if self.stack self.stack.pop else raise look...

資料結構 C語言版 系列三 佇列

佇列是一種先進先出的線性表,它只允許在表的一端進行插入,而在另一端刪除元素。這和我們日常生活中的排隊是一致的,最早進入佇列的元素最早離開。在佇列中,允許插入的一端叫做隊尾 rear 允許刪除的一段則稱為隊頭 front 假設隊列為q a1,a2,an 則a1就是隊頭元素,an是隊尾元素。除了棧和佇列...