手動模擬LinkedList

2021-10-06 21:02:08 字數 2892 閱讀 3676

/**

* 自己用鍊錶寫乙個linked_list

* 索引定為從1開始

* @param */

public

class

linked_list

private

node

(t data, node next)

}//設定頭尾,方便對頭尾進行增刪改查

private node head;

private node tail;

int size;

public

linked_list()

public

linked_list

(t element)

/** * 從頭部插入

** @param element

*/public

void

addfirst

(t element)

size++;}

/** * 從尾部插入

** @param element

*/public

void

addlast

(t element)

else

size++;}

/** * 在指定位置處插入新節點

** @param element

* @param index

*/public

void

addbyindex

(t element,

int index)

/** * 獲取頭部資料

** @return

*/public t getfirst()

/** * 獲取尾部資料

** @return

*/public t getlast()

/** * 獲取指定位置處資料

** @param index

* @return

*/public t getbyindex

(int index)

/** * 獲取指定位置處的節點,索引位置從1開始

** @param index

* @return

*/public node findbyindex

(int index)

int count =1;

node temp = head;

while

(count != index)

return temp;

}/**

* 刪除頭部

** @return

*/public

boolean

removefirst()

head = head.next;

size--

;return

true;}

/** * 刪除尾部

** @return

*/public

boolean

removelast()

node byindex =

findbyindex

(size -1)

; tail = byindex;

tail.next = null;

size--

;return

true;}

/** * 通過索引位置來刪除元素

** @param index

* @return

*/public

boolean

removebyindex

(int index)

findbyindex

(index -1)

.next =

findbyindex

(index +1)

; size--

;return

true;}

/** * 修改頭部資料

** @param element

* @return

*/public

boolean

setfirst

(t element)

head.data = element;

return

true;}

/** * 修改尾部資料

** @param element

* @return

*/public

boolean

setlast

(t element)

tail.data = element;

return

true;}

/** * 修改指定索引位置元素

** @param element

* @param index

* @return

*/public

boolean

setbyindex

(t element,

int index)

findbyindex

(index)

.data = element;

return

true;}

/** * 遍歷linked_list

*/public string tostring()

str +=

(temp.data +

"]")

;return str;

}}

測試類:

/**

* 測試linked_list

*/public

class

testlinked_list

}

LinkedList學習示例模擬堆疊與佇列資料結構

堆疊 先進後出first in last out filo 如同乙個杯子 佇列 先進先出 first in first out fifo 如同乙個水管 複製 如下 class duilie public void myadd object obj public object myget public...

Xcode 手動新增模擬器

其實真的安裝起來發現我們真正需要的是os version檔案,並不是要你去下個完整的模擬機.將.simruntime檔案移動到 library developer coresimulator profiles runtimes資料夾下 如果沒有的話就建立乙個 重啟xcode 新增模擬器 add ad...

Xcode手動安裝iOS模擬器

今天公升級了一下xcode 8,但是由於本地xcode相關的檔案占用了快60個g的空間,我乾脆一不做二不休,直接把所有和xcode相關的都刪除掉了,重新安裝,這樣可以省出好多空間來,省出的空間主要是sdk和模擬器占用的。安裝完後,預設情況下xcode只會整合乙個最新的ios版本,這也是預料中的,然後...