線性表(Linear List)
? ? 1.什么是線性表
? ? 2.線性表的特點(diǎn)
? ? 3.線性表的基本運(yùn)算
順序表
? ? 1.什么是順序表
? ? 2.時(shí)間復(fù)雜度:
鏈表
? ? 1.什么是鏈表
? ? 2.單向鏈表
? ? 3. 雙向鏈表
? ? 4.ArrayList和LinkedList的使用
棧Stack
? ? 1.什么是棧
? ? 2.棧的基本方法
隊(duì)列Queue
? ? 1.什么是隊(duì)列
? ? 2.隊(duì)列的特點(diǎn)
? ? 3.隊(duì)列的基本方法
二叉樹(shù)
? ? 1.什么是二叉樹(shù)
? ? 2.特別二叉樹(shù)
線性表(Linear List)
1.什么是線性表
? ? ?零個(gè)或多個(gè)數(shù)據(jù)元素的有限序列。
2.線性表的特點(diǎn)
? ? ?有且僅有一個(gè)開(kāi)始結(jié)點(diǎn),無(wú)直接前趨,有且只有一個(gè)直接后繼
? ? ?有且僅有一個(gè)結(jié)束結(jié)點(diǎn),有且只有一個(gè)直接前趨,無(wú)直接后繼。
? ? ?內(nèi)部結(jié)點(diǎn)都有且只有一個(gè)直接前趨和一個(gè)直接后繼
?3.線性表的基本運(yùn)算
? ? ? ?initList:初始化操作,建立一個(gè)空的線性表
? ? ? ?listEmpty:若線性表為空,返回true,否則返回false
? ? ? ?clearList:將線性表清空
? ? ? ?getElem(index):將線性表中第index個(gè)位置的元素值返回
? ? ? ?locateElem(value):在線性表中查找與value值相等的元素,查找成功則返回該元素在線性表中的索引,否則返回-1
? ? ? ?listInsert(index,value):在線性表中第index個(gè)位置插入value
? ? ? ?listDelete(index):刪除線性表第index個(gè)位置元素,返回該值
? ? ? ?listLength:返回線性表實(shí)際存儲(chǔ)元素個(gè)數(shù),即長(zhǎng)度
? ? ? ?getAll:遍歷線性表
順序表
1.什么是順序表
? ? 順序表是按照順序存儲(chǔ)方式存儲(chǔ)的線性表,是一種特殊的線性表。
2.時(shí)間復(fù)雜度:
? ? 查詢(xún)時(shí)間復(fù)雜度為O(1);
? ??插入和刪除為O(n)。
鏈表
1.什么是鏈表
? ? 鏈表是一種線性表,但是并不會(huì)按線性的順序存儲(chǔ)數(shù)據(jù),而是在每一個(gè)節(jié)點(diǎn)里存到下一個(gè)節(jié)點(diǎn)的地址。鏈表可分為單向鏈表和雙向鏈表。
2.單向鏈表
? ? ?一個(gè)單向鏈表包含兩個(gè)值: 當(dāng)前節(jié)點(diǎn)的值和一個(gè)指向下一個(gè)節(jié)點(diǎn)的鏈接。
3. 雙向鏈表
?4.ArrayList和LinkedList的使用
? ? ? 以下情況使用 ArrayList :
? ? ? ? ? 頻繁訪問(wèn)列表中的某一個(gè)元素。
? ? ? ? ? 只需要在列表末尾進(jìn)行添加和刪除元素操作。
? ? ? ?以下情況使用 LinkedList :
? ? ? ? ? 需要通過(guò)循環(huán)迭代來(lái)訪問(wèn)列表中的某些元素。
? ? ? ? ??需要頻繁的在列表開(kāi)頭、中間、末尾等位置進(jìn)行添加和刪除元素操作。
棧Stack
1.什么是棧
? ? ?棧是Vector的一個(gè)子類(lèi),它實(shí)現(xiàn)了一個(gè)標(biāo)準(zhǔn)的后進(jìn)先出的棧。
? ? ?入棧和出棧。
2.棧的基本方法
1 | boolean empty()? 測(cè)試堆棧是否為空。 |
2 | Object peek( ) 查看堆棧頂部的對(duì)象,但不從堆棧中移除它。 |
3 | Object pop( ) 移除堆棧頂部的對(duì)象,并作為此函數(shù)的值返回該對(duì)象。 |
4 | Object push(Object element) 把項(xiàng)壓入堆棧頂部。 |
5 | int search(Object element) 返回對(duì)象在堆棧中的位置,以 1 為基數(shù)。? |
?隊(duì)列Queue
1.什么是隊(duì)列
? ? ?隊(duì)列是一種特殊的線性表,它只允許在表的前端進(jìn)行刪除操作,而在表的后端進(jìn)行插入操作。
?2.隊(duì)列的特點(diǎn)
? ? ? 1.只能在隊(duì)首進(jìn)行刪除操作,在隊(duì)尾進(jìn)行插入操作
? ? ? 2.先進(jìn)先出,后進(jìn)后出。
3.隊(duì)列的基本方法
插入 | add(e) | offer(e) |
刪除 | remove() | poll() |
查看 | element() | peek() |
二叉樹(shù)
1.什么是二叉樹(shù)
? ? ?二叉樹(shù)就是一個(gè)根節(jié)點(diǎn)最多有左右兩個(gè)孩子結(jié)點(diǎn)。
2.特別二叉樹(shù)
? ? ?滿(mǎn)二叉樹(shù):顧名思義,就是所有結(jié)點(diǎn)都是滿(mǎn)的,有左有右。
? ? ?完全二叉樹(shù):完全二叉樹(shù)是由滿(mǎn)二叉樹(shù)而引出來(lái)的,若一棵二叉樹(shù)至多只有最下面兩層的結(jié)點(diǎn)的度數(shù)可以小于2,并且最下層的結(jié)點(diǎn)都集中在該層最左邊的若干位置上,則此二叉樹(shù)為完全二叉樹(shù)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-635888.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-635888.html
到了這里,關(guān)于常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)(順序表、順序表、鏈表、棧、隊(duì)列、二叉樹(shù))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!