佇列的鏈式結構
佇列的鏈式儲存結構,其實就是線性表的單鏈表,只是只能夠尾進頭出而已。為了操作的方便,我們將隊頭指標指向鏈佇列的頭結點,隊尾指標指向終點結點,如下圖所示。
空佇列是,front和rear同時指向頭結點。鏈式佇列基本沒有滿佇列。
鏈式佇列的型別定義:
typedef struct qnode
lqnode, *queueptr;
//鏈式佇列的定義
typedef struct
linkqueue;
二:鏈式佇列的實現linkqueue.c檔案
#include "linkqueue.h"
#include //初始化鏈式佇列
void initqueue(linkqueue *lq)
//判斷鏈式佇列是夠為空
int queueempty(linkqueue lq)
//入隊操作
int enterqueue(linkqueue *lq, datatype e)
//出隊操作
int deletequeue(linkqueue *lq,datatype *e)
//取隊頭元素
int gethead(linkqueue lq,datatype *e)
//求隊長操作
int queuelength(linkqueue lq)
linkqueue.h檔案
#ifndef _linkqueue_h
#define _linkqueue_h
typedef char datatype;
//鏈式佇列結點定義
typedef struct qnode
lqnode,*queueptr;
//定義佇列型別
typedef struct
linkqueue;
//初始化鏈式佇列
void initqueue(linkqueue *lq);
//判斷鏈式佇列是夠為空
int queueempty(linkqueue lq);
//入隊操作
int enterqueue(linkqueue *lq, datatype e);
//出隊操作
int deletequeue(linkqueue *lq,datatype *e);
//取隊頭元素
int gethead(linkqueue lq,datatype *e);
//求隊長操作
int queuelength(linkqueue lq);
//清空佇列
void clearqueue(linkqueue *lq);
#endif
3:main.c檔案
/*判斷字串行事是否為回文,採用佇列和棧的方法,佇列是先進先出,棧是先進後出
若出隊的和出棧的元素一致,則是回文*/
#include #include "linkqueue.h"
#include "linkstack.h"
void main()
{ linkqueue lqueue1,lqueue2; //定義鏈式佇列
lstacknode *lstack1,*lstack2; //定義鏈式棧
char str1 = "xyzazyx"; //需要判斷的字串
char str2 = "xyhjhaa";
char q1,s1,q2,s2;
int i;
initqueue(&lqueue1); //初始化鏈式佇列和棧
佇列的鏈式儲存結構
佇列的鏈式儲存結構可以建立乙個頭結點,乙個指向頭結點的指標front,乙個指向尾節點的指標rear。新增乙個節點的時候將rear指向新節點,取乙個節點的時候將front指向下個節點的下乙個節點。佇列鏈式儲存.cpp 定義控制台應用程式的入口點。include stdafx.h struct link...
佇列的鏈式儲存結構
1 佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,簡稱為鏈佇列。為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點。空佇列時,front和rear都指向頭結點。鏈佇列的結構為 include using namespace std define ok ...
佇列的鏈式儲存結構
佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,我們把它簡稱為鏈佇列。為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點,如下圖所示 空佇列時,front和rear都指向頭結點。鏈佇列的結構為 typedef int qelemtype typedef ...