佇列的鏈式儲存實現

2022-09-12 11:06:23 字數 1668 閱讀 8981

#include

#include

#define true 1

#define false 0

#define ok 1

#define error 0

#define overflow 02

typedef int qelemtype;

typedef int status;

//storage structure

typedef struct qnode

qnode,*queueptr;

typedef struct

linkqueue;

//初始化佇列

status initqueue(linkqueue *q)

q->front->next=null;

return ok;

}//銷毀佇列

status destroyqueue(linkqueue *q) //此時的q.rear 只是輔助的指標 失去了它原來的意義

return ok;

} //清空佇列

status clearqueue(linkqueue *q)

//判斷佇列是否為空

status isempty(linkqueue q)

else

} status getlength(linkqueue q)

return i;

}//獲取隊首元素

status gethead(linkqueue q,qelemtype *e)

p=q.front->next;

*e=p->data;

return ok;

} //入隊

status enqueue(linkqueue *q,qelemtype e)

p->data=e;

p->next=null;

q->rear->next=p; //使上一次的隊尾的next 指向現在的隊尾元素

q->rear=p; //rear指向新的隊尾元素

return ok;

}//出隊

status dequeue(linkqueue *q,qelemtype *e)

p=q->front->next;

*e=p->data;

q->front->next=p->next;

if(q->rear==p)

free(p);

return ok;

} //遍歷佇列

status tr**ersequeue(linkqueue q)

else

return ok;}}

int main()

for(i=0;i<10;i++)

gethead(q,&e);

printf("the first element is %d\n",e);

printf("the length of the queue is %d\n",getlength(q));

dequeue(&q,&e);

printf("delete element is %d\n",e);

tr**ersequeue(q);

if(destroyqueue(&q))

tr**ersequeue(q);

}return 0;

}

鏈式儲存的佇列的實現

2013 08 18 20 07 25 鏈式儲存的佇列的實現,包括佇列的初始化 銷毀 入隊 出隊 測長 獲取隊首元素等基本操作。注意幾點 佇列結構,包含乙個頭指標 乙個尾指標,初始化為空佇列,空佇列的隊首指標與隊尾指標相同 鍊錶包含頭結點,否則在隊列為空以及佇列只有乙個元素時都是隊尾至真與隊首指標相...

Java佇列 鏈式儲存實現

佇列介面 public inte ce queue 鍊錶介面 public inte ce node 隊列為空丟擲該異常 public class queueemptyexception extends runtimeexception 單鏈表的定義 public class slnode impl...

佇列的順序 鏈式儲存實現

佇列 具有一定操作約束的線性表,只能在一端插入,在另一端刪除。特點 先來先服務,先進先出表 頭front,尾rear 順序儲存 1 define maxsize 儲存資料元素的最大個數 23 struct qnode 1213 typedef struct qnode queue 14 front ...