1.佇列概念
只允許在一端進行插入資料操作,在另一端進行刪除操作的特殊線性表
進行插入操作的一端稱為隊尾(入佇列)
進行刪除操作的一端稱為隊頭(出佇列)
佇列具有先進先出的特性(fifo)
2.鏈式佇列
#include #include #include #include //鏈式佇列(即佇列的底層實現為鍊錶),煉表頭結點為佇列的對頭
typedef int datatype;
typedef struct listnode
node,*pnode;
typedef struct squeue
squeue,*psqueue;
//初始化佇列
void squeueinit(psqueue q);
//入佇列
void squeuepush(psqueue q,datatype data);
//出佇列
void squeuepop(psqueue q);
//判空
int squeueempty(psqueue q);
//獲得隊頭元素
datatype squeuefrontdata(psqueue q);
//獲得隊尾元素
datatype squeuereardata(psqueue q);
//檢視佇列長度
int squeuesize(psqueue q);
//銷毀佇列
void squeuedestory(psqueue q);
squeue.c
test.c#define _crt_secure_no_warning 1
#include "squeue.h"
//初始化佇列
void squeueinit(psqueue q)
pnode buynewnode(datatype data)
pnewnode->_pnext = null;
pnewnode->_data = data;
return pnewnode;
}//入佇列
void squeuepush(psqueue q,datatype data)
}//出佇列
void squeuepop(psqueue q)
//判空
int squeueempty(psqueue q)
//獲得隊頭元素
datatype squeuefrontdata(psqueue q)
//獲得隊尾元素
datatype squeuereardata(psqueue q)
//檢視佇列長度
int squeuesize(psqueue q)
} return count;
}//銷毀佇列
void squeuedestory(psqueue q)
}}
3.迴圈佇列squeue q;
squeueinit(&q);
squeuepush(&q,1);
squeuepush(&q,2);
squeuepush(&q,3);
squeuepush(&q,4);
squeuepush(&q,5);
squeuepush(&q,6);
printf("front is %d\n",squeuefrontdata(&q));
printf("rear is %d\n",squeuereardata(&q));
printf("size is %d\n",squeuesize(&q));
squeuepop(&q);
squeuepop(&q);
printf("front is %d\n",squeuefrontdata(&q));
printf("rear is %d\n",squeuereardata(&q));
printf("size is %d\n",squeuesize(&q));
squeuedestory(&q);
queue.h
queue.c//迴圈佇列
#pragma once
#include #include #include #define max_size 8
typedef int datatype;
typedef struct queue
queue,*pqueue;
//佇列初始化
void queueinit(pqueue q);
//入佇列
void queuepush(pqueue q,datatype data);
//出佇列
void queuepop(pqueue q);
//佇列元素的個數
int queuesize(pqueue q);
//佇列判空
int queueempty(pqueue q);
//獲得隊頭元素
datatype queuefront(pqueue q);
//獲得隊尾元素
datatype queuerear(pqueue q);
test,c#include "queue.h"
//佇列初始化
void queueinit(pqueue q)
//入佇列
void queuepush(pqueue q,datatype data)
//出佇列
void queuepop(pqueue q)
//佇列元素的個數
int queuesize(pqueue q)
//佇列判空
int queueempty(pqueue q)
//獲得隊頭元素
datatype queuefront(pqueue q)
//獲得隊尾元素
datatype queuerear(pqueue q)
#include "squeue.h"
int main()
佇列的基本操作
include stdafx.h includeusing namespace std typedef struct node typedef struct queue queue insertqueue queue q,char value return q queue deletequeue q...
佇列的基本操作
本程式主要是實現了迴圈佇列的基本操作,包括insert,remove,peek,size等操作 package demo3 class queue 插入操作 public void insert long j quearray rear j 佇列是在隊尾插入 nitems 刪除 public lon...
佇列的基本操作
鏈式儲存 typedef int qelemtype typedef int status 具體資料型別具體定義 typedef struct qnode 佇列結點結構體 qnode,queueptr typedef struct 鏈佇列型別 linkqueue status initqueue l...