隊列順序存儲操作的6種算法_第1頁
隊列順序存儲操作的6種算法_第2頁
隊列順序存儲操作的6種算法_第3頁
隊列順序存儲操作的6種算法_第4頁
隊列順序存儲操作的6種算法_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上#include#includetypedefintelemType;/*/*以下是關于隊列順序存儲操作的6種算法*/*/structqueueelemType*queue;/*指向存儲隊列的數組空間*/intfront,rear,len;/*隊首指針(下標),隊尾指針(下標),隊列長度變量*/intmaxSize;/*queue數組長度*/;voidagainMalloc(structqueue*q)/*空間擴展為原來的2倍,原內容被自動拷貝到p所指向的存儲空間中*/elemType*p;p=realloc(q-queue,2*q-maxSize*sizeof(el

2、emType);/*動態存儲空間分配,若失敗則退出運行*/if(!p)printf(空間分配失敗! );exit(1);q-queue=p;/*使queue指向新的隊列空間*/*把原隊列的尾部內容后移maxSize個位置*/if(q-rear!=q-maxSize-1)inti;for(i=0;irear;i+)q-queuei+q-maxSize=q-queuei;q-rear+=q-maxSize;/*隊尾指針后移maxSize個位置*/q-maxSize=2*q-maxSize;/*把隊列空間大小修改為新的長度*/return;/*1.初始化隊列*/voidinitQueue(struc

3、tqueue*q,intms)/*檢查ms是否有效,若無效則退出運行*/if(msmaxSize=ms;/*置隊列空間大小為ms*/*動態存儲空間分配,若失敗則退出運行*/q-queue=malloc(ms*sizeof(elemType);if(!q-queue)printf(內存空間分配失敗! );exit(1);q-front=q-rear=0;/*初始置隊列為空*/return;/*2.向隊列中插入元素x*/voidenQueue(structqueue*q,elemTypex)/*當隊列滿時進行動態生分配*/if(q-rear+1)%q-maxSize=q-front)againMa

4、lloc(q);q-rear=(q-rear+1)%q-maxSize;/*求出隊尾的下一個位置*/q-queueq-rear=x;/*把x的值賦給新的隊尾*/return;/*3.從隊列中刪除元素并返回*/elemTypeoutQueue(structqueue*q)/*若隊列為空則終止運行*/if(q-front=q-rear)printf(隊列為空,無法刪除! );exit(1);q-front=(q-front+1)%q-maxSize;/*使隊首指針指向下一個位置*/returnq-queueq-front;/*返回隊首元素*/*4.讀取隊首元素,不改變隊列狀態*/elemTypep

5、eekQueue(structqueue*q)/*若隊列為空則終止運行*/if(q-front=q-rear)printf(隊列為空,無法刪除! );exit(1);returnq-queue(q-front+1)%q-maxSize;/*隊首元素是隊首指針的下一個位置中的元素*/*5.檢查一個隊列是否為空,若是則返回1,否則返回0*/intemptyQueue(structqueue*q)if(q-front=q-rear)return1;elsereturn0;/*6.清除一個隊列,并釋放動態存儲空間*/voidclearQueue(structqueue*q)if(q-queue!=NU

6、LL)free(q-queue);q-queue=NULL;/*設置隊列空間指針為空*/q-front=q-rear=0;/*設置隊列為空*/q-maxSize=0;/*設置隊列大小為0*/return;/*/intmain(intargc,char*argv)structqueueq;inta8=3,8,5,17,9,30,15,22;inti;initQueue(&q,5);for(i=0;i8;i+)enQueue(&q,ai);printf(%d,outQueue(&q);printf(%d ,outQueue(&q);enQueue(&q,68);printf(%d,peekQueue(&q);printf(%d ,outQueue(&q);whi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論