第一周 陣列 鍊錶 跳表 棧 佇列

2021-09-29 07:21:02 字數 2289 閱讀 6016

二、原始碼分析

2、priority deque原始碼

三、改寫deque

精華:

知識點:

​ 陣列,鍊錶、棧、佇列、堆排

leetcode:

​ 鏈結(歡迎指正錯誤): 01/id_693

補充:1、刷題五步法:

第二步:關閉答案,自己寫程式,直到測試通過

第三步:第二天對前一天的程式進行重新寫

第四步:一周後對程式進行重新寫

第五步:面試準備前半周或者一周,對題目進行重新寫

2、切題四件套:

寫程式寫測試樣例進行測試

1、queue原始碼

繼承關係

函式說明

add

(e e)

:boolean

//新增元素

//如果沒有佇列空間已滿,丟擲異常

offer

(e e)

:boolean

//新增元素

//如果沒有佇列空間已滿,進行擴容新增

remove()

:e //壓出棧頂元素

//如果隊列為null,丟擲異常

poll()

:e //壓出棧頂元素

//如果隊列為null,返回null

element()

:e //檢索棧頂元素

//如果隊列為null,丟擲異常

peek()

:e //檢索棧頂元素

//如果隊列為null,返回null

2、priority deque原始碼

繼承關係

屬性說明

//預設初始化大小

private

static

final intdefault_initial_capacity =

11;//用陣列實現的二叉堆

private

transient object[

] queue ;

//佇列的元素數量

private

int size =0;

//比較器

private

final comparaotr<

?super e> comparator;

//修改版本

private

transient

int modcount =

0;

常用函式

1、offer 新增元素

public

boolean

offer

(e e)

//上浮

private

void

siftup

(int k, e x)

private

void

siftupcomparable

(int k, e x)

queue[k]

= key;

}

2、remove 刪除元素

public

boolean

remove

(object o)

}private e removeat

(int i)

}return null;

}

linkedlist
deque

deque =

newlinkedlist()

;"a")

"b")

"c")

deque.

addfirst

("a");

deque.

addfirst

("b");

deque.

addfirst

("c");

system.out.

println

(deque)

;//string str = deque.peek();

string str = deque.

peekfirst()

;system.out.

println

(str)

;system.out.

println

(deque)

;while

(deque.

size()

>0)

system.out.

println

(deque)

;

ARTS 第一周 演算法 翻轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 變數在 左邊時為引用,在 右邊時為引用指向的記憶體位址。輸入 1 2 3 4 5 null 輸出 null class solution return prev 2 試圖當視窗移動到null時成立並退出迴圈...

第一周 1 2佇列

實現乙個佇列,完成以下功能 入列出列 詢問佇列中位置y是誰 一開始隊列為空。佇列中的位置從1開始 即隊頭位置為1 第一行乙個整數n,表示操作個數。接下來n行,每行第乙個數字表示操作 見描述 將所有操作2和操作3輸出,一行乙個。11 1 a1 b 1 c3 1 3 23 3 21 d 3 13 2 3...

資料自習室 第一周 資料的描述性統計

眾數 出現次數最多的數。中位數 按順序排序,處於中間位置的數。平均數 一般指的是 算術平均數。極差 最大值與最小值之間的差距。分位數 亦稱分位點,是指將乙個隨機變數的概率分布範圍分為幾個等份的數值點,常用的有中位數 即二分位數 四分位數 百分位數等。1.二分位數 對於有限的數集,可以通過把所有觀察值...