佇列的鏈式結構

2021-07-06 00:04:44 字數 2416 閱讀 3360

佇列的鏈式結構

佇列的鏈式儲存結構,其實就是線性表的單鏈表,只是只能夠尾進頭出而已。為了操作的方便,我們將隊頭指標指向鏈佇列的頭結點,隊尾指標指向終點結點,如下圖所示。

空佇列是,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 ...