下面從**中理解分析佇列的鏈式儲存原理。
templateclass queue
};node *front; //隊頭
node *rear; //隊尾
};///
//////
//////
//////
//////
//////
////////
templatequeue::queue()
//////
//////
//////
//////
//////
//////
//////
templatequeue::~queue() //析構函式
templatevoid queueli::makeempty()
//////
//////
//////
//////
//////
//////
////////
templatebool queue::isempty() const
//判斷是佇列是否為空
//////
//////
//////
//////
//////
//////
///////
templateconst t& queue::getfront() const
//////
//////
//////
//////
//////
//////
/////
templatevoid queue::enqueue(const t &x)
//////
//////
//////
//////
//////
////////
templatet queue::dequeue()
重點理解一下佇列元素的插入
template
void
queue
::enqueue(const t &x)
當隊列為空,插入第乙個結點時,隊頭隊尾指標指向同乙個結點,它們值相同,即上面所示的(1)式。
當插入第二個結點時,隊尾指標指向的結點,也就是隊頭指標指向的結點(這點值得注意)的next指標由空被賦值為新元素的位址,即rear->next=new node(x),此時等價於front->next=new node(x),都是第乙個結點的next指標被賦值;然後隊尾指標rear賦值為新元素位址,隊尾變更,即rear=new node(x),此時rear指向的新結點中next指標為空。這兩個過程合併起來就是上面所示的(2)式。
之後插入的結點的儲存過程類似,先是rear指向的元素的空next指標被賦值為新元素的位址,然後新元素位址賦給隊尾rear指標,產生新隊尾。
深度理解鏈式前向性
大佬部落格 我們首先來看一下什麼是前向星.前向星是一種特殊的邊集陣列,我們把邊集陣列中的每一條邊按照起點從小到大排序,如果起點相同就按照終點從小到大排序,並記錄下以某個點為起點的所有邊在陣列中的起始位置和儲存長度,那麼前向星就構造好了.用len i 來記錄所有以i為起點的邊在陣列中的儲存長度.用he...
理解鏈式前向星
我們首先來看一下什麼是前向星.前向星是一種特殊的邊集陣列,我們把邊集陣列中的每一條邊按照起點從小到大排序,如果起點相同就按照終點從小到大排序,並記錄下以某個點為起點的所有邊在陣列中的起始位置和儲存長度,那麼前向星就構造好了.用len i 來記錄所有以i為起點的邊在陣列中的儲存長度.用head i 記...
深度理解鏈式前向星
我們首先來看一下什麼是前向星.前向星是一種特殊的邊集陣列,我們把邊集陣列中的每一條邊按照起點從小到大排序,如果起點相同就按照終點從小到大排序,並記錄下以某個點為起點的所有邊在陣列中的起始位置和儲存長度,那麼前向星就構造好了.用len i 來記錄所有以i為起點的邊在陣列中的儲存長度.用head i 記...