1.哈希(Hash)
計數(shù)排序中的桶就是hash,hash的意思就是一個key對應(yīng)一個value,如:
數(shù)組也是hash:a[0]=1,a[1]=2,......
對象也是hash
2.隊列
先進先出,和排隊一樣
let q = [];
q.push('第一');
q.push('第二');
q.push('第三');
q.shift(); //第一
q.shift(); //第二
q.shift(); //第三
基數(shù)排序里的桶就是隊列,因為是先進先出
3.棧
先進后出,和隊列相反
let stack = [];
stack.push('第一');
stack.push('第二');
stack.push('第三');
stack.pop(); //第三
stack.pop(); //第二
stack.pop(); //第一
4.鏈表
let a = {
value:1,
next:{
value:2,
next:{
value:3
}
}
}
a.next.value=2;
a.next.next.value=3;
比數(shù)組好在刪除中間的數(shù)據(jù)很方便,比如刪除第二項,直接:
a.next = a.next.next
5.樹
- html就是一種樹。
- 二叉樹每個節(jié)點最多有兩個分支,被稱為左子樹和右子樹
- 定義根節(jié)點為第0層,二叉樹的第i層最多有 2i個節(jié)點,整棵樹最多有2i+1-1個節(jié)點
- 完全二叉樹和滿二叉樹可以用數(shù)組來存
- 定義二叉樹根節(jié)點為第0層,完全二叉樹或滿二叉樹每一層的第一個數(shù)在數(shù)組中為a[2i-1],每一層的最后一個數(shù)為a[2i+1-1-1]