1:佇列定義
#define maxsize 100
typedef struct sqqueuesqqueue;
2:迴圈佇列的初始化
//迴圈佇列的初始化
bool initqueue(sqqueue &q)//注意使用引用引數,否則出了函式,其改變無效
3:迴圈佇列的入隊
//迴圈佇列的入隊
bool enqueue(sqqueue &q,int ndata)//將元素ndata放入q的隊尾
q.pbase[q.nrear] = ndata; //新元素插入隊尾
q.nrear = (q.nrear + 1) % maxsize; //隊尾指標加1
return true;
}
4:迴圈佇列的出隊
//迴圈佇列的出隊
bool dequeue(sqqueue &q, int &ndata) //刪除q的隊頭元素,用ndata返回其值
ndata = q.pbase[q.nfront]; //儲存隊頭元素
q.nfront = (q.nfront + 1) % maxsize; //隊頭指標加1
return true;
}
5:取迴圈佇列的隊頭元素
int gethead(sqqueue q)//返回q的隊頭元素,不修改隊頭指標
return q.pbase[q.nfront];
}
6:迴圈佇列的長度
int queuelength(sqqueue q)
資料結構與演算法 第03部分 棧與佇列(棧)
1 棧定義 define maxsize 100 預先分配空間,這個數值根據實際需要預估確定 typedef struct sqstack sqstack 2 構造乙個空棧s bool initstack sqstack s 構造乙個空棧s s.ptop s.pbase ptop初始為pbase,空...
資料結構與演算法 第11部分 排序
1 直接插入排序 演算法步驟 1 設待排度的記錄儲存在陣列r 1.n 中,可以把第乙個記錄r 1 看作乙個有序序列。2 依次將r i i 2,n 插入到已經排好序的序列r 1.i 1 中,並保持有序性。void straightinsertsort int r,int n 直接插入排序 r 0 r ...
c 資料結構佇列棧屍體 資料結構與演算法 棧與佇列
使用抽象資料型別可以幫助我們更好的理解資料所需的操作,之後再進行具體的資料型別實現。實際上,往往是操作影響著我們決定資料型別該如何實現,這裡有兩種典型的資料結構 棧和佇列。1 棧首先,普通的線性表實現是有兩個埠可以訪問的,但是如果作為棧就要封閉一端,只能訪問另一端。這當然不是自討苦吃,棧是一種抽象資...