鏈式佇列 帶頭結點

2021-08-19 10:24:11 字數 1884 閱讀 5873

鏈式佇列(無頭結點)

注意事項:帶頭結點的鏈式佇列在出佇列時,出最後乙個元素的與出其它元素不同,出非最後乙個元素,隊尾指標不變,一直指向第乙個元素,當出最後乙個元素時,隊尾指標改變指向隊頭(也就是指向頭結點),認真看看這裡(這個例子並沒看到帶頭結點方便)

//編譯環境 vs2008

queue

.h#pragma once

#include

#include

#include

typedef int datatype;

typedef struct node

node,*pnode;

typedef struct queue

queue;

//初始化

void initqueue(queue

* q);

//佇列尾插

void queuepush(queue

*q,datatype data);

//佇列頭刪

void queuepop(queue

*q);

//建立乙個結點

pnode buynode(datatype data);

//佇列是否為空

int queueempty(queue q);

//佇列的大小

int queuesize(queue

*q);

//隊頭元素

datatype queuefront(queue

*q);

//隊尾元素

datatype queueback(queue

*q);

//銷毀的佇列

void queuedestroy(queue

*q);

#define _crt_secure_no_warnings 1

#include

"queue.h"

//初始化

void initqueue(queue

* q)

//隊尾進元素

void queuepush(queue

* q,datatype data)

//佇列頭刪

void queuepop(queue

*q) else

}//判斷佇列是否為空

int queueempty(queue q) //這裡可以傳佇列的位址,但是直接傳佇列已經足夠

//佇列的大小

int queuesize(queue

*q) return count;

}//隊頭元素

datatype queuefront(queue

*q) return q->_phead->_pnext->_data;

}//隊尾元素

datatype queueback(queue

*q) return q->_ptail->_data;

}//新建乙個結點

pnode buynode(datatype data)

pcur->_data =

data;

pcur->_pnext =

null;

return pcur;

}//銷毀佇列

void queuedestroy(queue

*q) q->_ptail =

null;

}///

#define _crt_secure_no_warnings 1

//#include

"queue.h"

void queuetest();

int main()

void queuetest()

帶頭結點的鏈式表操作集

本題要求實現帶頭結點的鏈式表操作集。函式介面定義 list makeempty position find list l,elementtype x bool insert list l,elementtype x,position p bool delete list l,position p 其...

帶頭結點的鏈式表操作集

本題要求實現帶頭結點的鏈式表操作集。函式介面定義 list makeempty position find list l,elementtype x bool insert list l,elementtype x,position p bool delete list l,position p 其...

帶頭結點的鏈式表操作集

include include define error null typedef enum bool typedef int elementtype typedef struct lnode ptrtolnode struct lnode typedef ptrtolnode position t...