資料結構實驗三
實驗3:佇列的鏈式表示和實現
要求:構建2個用帶頭結點的單鏈表佇列qa和qb, 實現下列操作
1、初始化佇列(清空);
2、入隊;
3、出隊;
4、求佇列長度;
5、判斷佇列是否為空;
6、對於佇列qa和qb,如果其中乙個佇列的售貨員下班,則自動甩到另乙個佇列後面。
(別問我為什麼把front 和 rear 定義在結構體裡,可能是因為b格比較高趴,其實你可以直接定義在外面)
typedef
struct qnode
qnode,
*queueptr;
typedef
struct
linqueue;
void
creat
(linqueue &q)
//初始化
int
enqueue
(linqueue &q,
int e)
//入隊,其實這個就是單鏈表的前插 法,當然, 你也可以while(n--)
void
dequeue
(linqueue &q)
//全部出隊
q.rear = q.front;
cout << p->data <<
'\n'
;free
(p);
} cout <<
'\n';}
intdelete
(linqueue &q)
//清空佇列,和出隊差不多
q.rear = q.front;
free
(p);
return1;
}
你會發現,差不多趴。。。。。。
(核心**)
void
connect
(linqueue &q, linqueue &l)
//#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std ;
typedef
long
long ll;
#define maxn 100005
#define inf 0x3f3f3f3f
#define mall (qnode *)malloc(sizeof(qnode));
typedef
struct qnode//單鏈表
qnode,
*queueptr;
typedef
struct
//頭尾指標
linqueue;
void
creat
(linqueue &q)
//初始化
intenqueue
(linqueue &q,
int e)
//乙個元素乙個元素的入隊,當然, 你可以讀入n
void
dequeue
(linqueue &q)
//全部出隊,
q.rear = q.front;
cout << p->data <<
'\n'
;free
(p);
} cout <<
'\n';}
intdelete
(linqueue &q)
//清空佇列,和出隊差不多,就是沒有輸出資料
q.rear = q.front;
free
(p);
return1;
}void
len(linqueue q)
//求此時佇列的長度
if(le ==0)
cout <<
"該佇列目前為空"
<<
'\n'
;else
cout <<
"目前佇列的長度為:"
<< le <<
'\n';}
void
connect
(linqueue &q, linqueue &l)
//連線a,b兩個佇列
intmain()
if(c ==6)
break;}
else
if(c ==6)
break;}
system
("pause");
system
("cls");
}return0;
}
資料結構之鏈式佇列
我們實現了順序佇列,包括優化,現在我們再來學習下鏈式佇列。注 這裡還是要包含前面我們實現的鏈式鍊錶的標頭檔案和實現檔案。第十個例子,鏈式佇列的實現 標頭檔案 ifndef linkqueue h define linkqueue h typedef void linkqueue linkqueue ...
資料結構之佇列(鏈式儲存)
一 佇列結點package linkedqueue packagname linkedqueue classname linkedqueuenode date 2017 1 25 author cullianns des 鏈式儲存結點結構 public class linkedqueuenode 二...
資料結構鏈式佇列
對佇列進行以下操作 1.入佇列 2.出佇列 3.取隊首元素 佇列先進先出,要想實現入佇列,從隊尾插入元素 要想實現出佇列,從隊首刪除元素。在這裡,我們定義頭尾指標,首先對空佇列插入元素,讓頭指標等於尾指標,如果非空,依然讓頭指標指向隊首,尾指標指向要插入的元素。刪除元素時,直接讓頭指標指向下乙個元素...