基本資料結構的說明(二)

2021-05-10 03:16:43 字數 2095 閱讀 7258

2.

棧和佇列

所謂的棧,是乙個含有至少兩個基本操作的抽象資料型別:插入新的元素;刪除最近時間插入的元素。à遵循

filo

(first in

,last out

,先進後出)的原則。

所謂的佇列,也是乙個含有至少兩個基本操作的抽象資料型別:插入新的元素;刪除最久時間插入的元素。à遵循

fifo

(first in

,first out

,先進先出)的原則。

關於棧和佇列的具體實現,我們即可以借助於陣列,也可以採用鍊錶來實現。

1)棧的陣列實現方式

publicclassmystack

publicmystack ()

publicmystack (intlen)

/**重新調整陣列的大小

**/privatevoidresize(intsize)

items

=newitems; }

publicvoidpush(e e)

publice pop()

publice peek() }

2)棧的鏈式實現方式

public class mystack

node head;

public boolean isempty()

public void push(e t)

public e pop()

public e peek() }

3)佇列的陣列實現

public class arrayqueue

public boolean empty()

public void insert(e e)

if(front //

如果元素位於

itemarray[front:rear-1]

中for(int i=front;i

newarray[i]=itemarray[i]; }

}else //

區間2:itemarray[front:count-1]

for(int i=front;i

newarray[i]=itemarray[i]; }

front+=capacityincrement;//

然後,將

front

改為指向其新位置}

itemarray=newarray; }

itemarray[rear]=e;

rear=(rear+1)%capacity;

count++; }

public e remove()

else }

}4)佇列的鏈式實現方式

publicclasslistqueue

privatenode

front

,rear;

privateint

count;

publicbooleanempty()

publicvoidinsert(e e)else

count

++; }

publice remove()else

count

--;

returne; }

} publiclistqueueclone() }

基本資料結構說明(三)

3.樹的說明 樹 t k是包含n個結點的有窮集合 n 0 關係r滿足以下條件 1 有且僅有乙個結點k0 k,它對於關係r來說沒有前驅結點,結點k0稱作樹的根。2 除結點k0外,k中的每個結點對於關係r來說都有且僅有乙個前驅結點。3 k中每個結點對於關係r來說可以有多個後繼結點。我這裡主要討論的是二叉...

(二)基本資料結構 棧

棧作為最常見的資料結構之一,其作用不言而喻。我將自定義乙個棧的類,該棧是基礎之前所學習的動態陣列實現的。由於棧是filo first in last out 型別,則棧的增刪只存在入棧push 和出棧pop 而改查則需要一一出棧然後修改後再進行入棧操作。由於基礎array實現 array 在arra...

opencv基本資料結構

iplimage 首先介紹重要的成員變數 width和height表示了的尺寸。其次是depth和nchannels,depth是指畫素顏色的取值範圍,nchnannels為影象的通道,可以取1,2,3,4 origin變數定義了影象的原點,有兩個取值,分別是ipl origin bl和ipl or...