



全文預覽已結束
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗四 隊列的存儲結構和基本操作實驗內容 1.鏈式隊列的存儲結構C語言中的鏈式隊列存儲結構描述: 鏈式隊列的存儲結構typedef struct QNodeQElemType data; /*隊列中元素*/Struct QNode *next; Qnode,*QueuePtr; /*隊列中頭、尾指針存儲類型定義*/typedef structQueuePtr front,rear; /*對頭、對尾指針*/ LinkQueue; /*鏈式隊列數據類型*/2. 鏈式隊列的基本操作 (1)初始化操作:構造一個空鏈式隊列Q。(2)銷毀操作:釋放隊列空間。(3)清空操作:將鏈式隊列設置為空隊列。(5)進隊列操作:在鏈式隊列隊尾插入一個新的元素作為新的隊尾元素。(6)出隊列操作:將對頭元素從隊列中刪除,并將結果返回。3. 鏈式隊列操作實現的操作步驟(1)實現將鏈式隊列的存儲結構和基本操作程序代碼。(2)實現main主函數。4.程序代碼完整清單#include #include #define MaxSize 5typedef char ElemType;typedef struct qnodeElemType data;struct qnode *next; QNode;typedef structQNode *front;QNode *rear; LiQueue;/基本操作函數聲明 void InitQueue(LiQueue *&q); /*初始化鏈式隊列*/ void ClearQueue(LiQueue *&q); /*銷毀鏈式隊列*/ int QueueLength(LiQueue *q); /*鏈式隊列長度*/ int QueueEmpty(LiQueue *q); /*清空鏈式隊列*/ void enQueue(LiQueue *&q,ElemType e); /*入鏈式隊列*/ int deQueue(LiQueue *&q,ElemType &e); /*出鏈式隊列*/void main()ElemType e;LiQueue *q;printf(1)初始化鏈隊qn);InitQueue(q);printf(2)依次進鏈隊元素a,b,cn);enQueue(q,a);enQueue(q,b);enQueue(q,c);printf(3)鏈隊為%sn,(QueueEmpty(q)?空:非空);if (deQueue(q,e)=0) printf(隊空,不能出隊n);elseprintf(4)出隊一個元素%cn,e);printf(5)鏈隊q的元素個數:%dn,QueueLength(q);printf(6)依次進鏈隊元素d,e,fn);enQueue(q,d);enQueue(q,e);enQueue(q,f);printf(7)鏈隊q的元素個數:%dn,QueueLength(q);printf(8)出鏈隊序列:);while (!QueueEmpty(q)deQueue(q,e);printf(%c ,e);printf(n);printf(9)釋放鏈隊n);ClearQueue(q);void InitQueue(LiQueue *&q) /*初始化鏈式隊列 操作結果:構造一個空隊列Q*/q=(LiQueue *)malloc(sizeof(LiQueue);q-front=q-rear=NULL;void ClearQueue(LiQueue *&q) /*釋放鏈式隊列 操作結果:釋放*/ /* 鏈式隊列結點空間*/QNode *p=q-front,*r;if (p!=NULL)/*釋放數據結點占用空間*/r=p-next;while (r!=NULL)free(p);p=r;r=p-next;free(q); /*釋放頭結點占用空間*/int QueueLength(LiQueue *q) /*求鏈式隊列長度 操作結果:返*/ /* 回鏈式隊列中結點個數*/int n=0;QNode *p=q-front;while (p!=NULL)n+;p=p-next;return(n);int QueueEmpty(LiQueue *q) /*清空鏈式隊列 操作結果:將鏈式隊為空*/ /* 列置鏈式隊列*/if (q-rear=NULL)return 1;elsereturn 0;void enQueue(LiQueue *&q,ElemType e) /*入隊列 操作結果:插入元素e為Q的*/ /* 新的隊尾元素*/QNode *s; s=(QNode *)malloc(sizeof(QNode);s-data=e;s-next=NULL; if (q-rear=NULL)/*若鏈隊為空,則新結點是隊首結點又是隊尾結點*/q-front=q-rear=s;elseq-rear-next=s; /*將*s結點鏈到隊尾,rear指向它*/q-rear=s;int deQueue(LiQueue *&q,ElemType &e) /*出隊列 操作結果:若隊列不空,刪*/ /*除Q的隊列元素,用e返回其值,并返*/QNode *t; /* 回1,否則返回0*/if (q-rear=NULL)/*隊列為空*/return 0;if (q-front=q-rear) /*隊列中只有一個結點時*/t=q-front;q-front=q-rear=NULL;else/*隊列中有多個結點時*/t=q-front;q-front=q-front-next;e=t-data; free(t);retu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何制作西點培訓
- 新產品培訓計劃
- 為政護理面試題及答案
- 2025年B2B電子商務項目規(guī)劃申請報告
- 社會矯正考試題及答案
- 中科軟java面試題及答案筆試題
- mqtt面試題及答案
- 員工意識心態(tài)培訓
- 2025年艾葉提取物項目規(guī)劃申請報告
- 2025年氫燃料電池汽車加氫站建設成本預測與布局路徑報告
- 大數據平臺部署與運維高職全套教學課件
- 源彩數碼印花技改項目環(huán)境影響報告表
- 2023年甘肅白銀市會寧縣選聘行政村專職化村黨組織書記6人高頻考點歷年難、易點深度預測(共500題含答案解析)模擬試卷
- 2021年中信公司組織架構和部門職能
- 大班幼兒幼小銜接“四準備”能力測評表
- 抗生素用藥原則
- 全自動橡膠注射硫化成型機操作規(guī)程
- 申報正高工程師職稱技術總結范文
- 幼兒園中班紅色經典故事《抗日英雄王二小》紅色革命教育繪本故事PPT課件【幼兒教案】
- 貝雷法簡介及貝雷三參數在瀝青混合料配合級配設計中應用
- 信用管理師(三級)理論考試題庫(300題)
評論
0/150
提交評論