mysql儲存結構雙向鍊錶 PHP實現雙向鍊錶 棧

2021-10-19 19:23:31 字數 1945 閱讀 5842

這次再來分享一下實現雙向鍊錶和棧的實現。**雖然是以前寫的了,但是發現php寫的這些**很容易看懂!

雙向鍊錶

classhero

elseelse if($cur->next->no == $hero->no)

$cur=$cur->next;

}if(!$i***ist)

$hero->pre=$cur;if($cur->next!=null)

$cur->next=$hero;

}//遍歷

static public function showhero($head)

static public function delhero($head,$herono)

//繼續找

$cur=$cur->next;

}if($isfind)

$cur->pre->next=$cur->next;

}else

}$head = newhero();$hero1 = new hero(1,'1111');$hero3 = new hero(3,'3333');$hero2 = new hero(2,'2222');

hero::addhero($head,$hero1);

hero::addhero($head,$hero3);

hero::addhero($head,$hero2);

hero::showhero($head);

hero::delhero($head,2);

hero::showhero($head);?>

雙向鍊錶的插入操作示意圖:

刪除操作示意圖:

if($cur->next!=null)$cur->next->pre=$cur->pre;$cur->pre->next=$cur->next;

棧$this->top++;$this->stack[$this->top]=$val;

}public functionshowstack()

for($i=$this->top;$i>-1;$i--)

public functionpop()

$val=$this->stack[$this->top];$this->top--;echo "

彈出".$val;

}$mystack = newmystack;$mystack->push('111');$mystack->push('222');$mystack->showstack();$mystack->pop();$mystack->pop();?>

棧(stack):是限制在表的一端進行插入和刪除操作的線性表。又稱為後進先出lifo (last in first out)或先進後出filo (first in last out)線性表。

棧在計算機的實現有多種方式:

硬堆疊:利用cpu中的某些暫存器組或類似的硬體或使用記憶體的特殊區域來實現。這類堆疊容量有限,但速度很快;

軟堆疊:這類堆疊主要在記憶體中實現。堆疊容量可以達到很大。在實現方式上,又有動態方式和靜態方式兩種

棧頂(top):允許進行插入、刪除操作的一端,又稱為表尾。用棧頂指標(top)來指示棧頂元素。

棧底(bottom):是固定端,又稱為表頭。

空棧:當表中沒有元素時稱為空棧。

棧的鏈式儲存結構稱為鏈棧,是運算受限的單鏈表。其插入和刪除操作只能在表頭位置上進行。因此,鏈棧沒有必要像單鏈表那樣附加頭結點,棧頂指標top就是鍊錶的頭指標。

當然,php中的陣列api裡面帶的有push和pop函式。

我是天王蓋地虎的分割線

mysql 雙向鍊錶 雙向鍊錶

雙向鍊錶是鍊錶變型,相比於單鏈表導航或者是向前和向後的兩種方式。以下是重要的術語來理解雙向鍊錶的概念 link 鍊錶的每個鏈路儲存資料稱為乙個元素。linkedlist linkedlist包含連線鏈結到名為首先第乙個鏈結,並稱為最後的最後乙個鏈結 last 雙向鍊錶表示 按照如上圖中所示,以下是要...

mysql儲存結構雙向鍊錶 資料庫的儲存結構

資料庫的儲存結構 資料庫的儲存結構是怎樣的?記錄是按照行儲存的,但是資料庫的讀取不是以行為單位,否則一次讀取只能處理一行,效率很低。因此資料庫,無論是讀一行,還是讀取多行,都是將這些行所在的頁進行載入。資料管理儲存空間的基本單位是頁 page 快速回顧一遍資料庫儲存結構 一頁可以儲存多個行記錄 ro...

mysql的引雙向鍊錶 雙向鍊錶

public classdoublelinkedlist else 新增至鍊錶尾 paramnode public voidaddlast doublenode node else 按照某屬性的順序新增 paramnode public voidaddbyorder doublenode node ...