线性表----循环链表和静态链表
生活随笔
收集整理的這篇文章主要介紹了
线性表----循环链表和静态链表
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、循環(huán)鏈表
1.1 循環(huán)單鏈表
循環(huán)單鏈表和單鏈表的區(qū)別在于,表中最后一個(gè)結(jié)點(diǎn)指針不在是null,而是頭指針,從而使整個(gè)鏈表形成一個(gè)環(huán)
- 此時(shí)判斷單鏈表是否為空,條件就是頭結(jié)點(diǎn)的指針是否等于頭指針
- 此時(shí)單鏈表相當(dāng)于一個(gè)環(huán),而且還是一個(gè)有方向的環(huán),頭指針表明這個(gè)環(huán)的入口地址,然后順著next指針走下去,所以循環(huán)單鏈表的插入、刪除算法與單鏈表幾乎一樣,所不同就是表尾的操作。
- 如果經(jīng)常對(duì)表尾操作,可以設(shè)個(gè)尾指針(表名是頭指針),對(duì)表頭和表尾的操作時(shí)間復(fù)雜度都是0(1)
1.2循環(huán)雙鏈表
相對(duì)于雙鏈表,不同的是循環(huán)雙鏈表的頭結(jié)點(diǎn)prior還要指向表尾,尾部的next還要指向頭結(jié)點(diǎn),其他都一樣,循環(huán)雙鏈表相當(dāng)于有兩個(gè)環(huán),兩個(gè)不同方向的環(huán),頭指針(表名)告訴我們這個(gè)循環(huán)雙鏈表的入口地址,我們可以向兩個(gè)方向操作數(shù)據(jù)
- 判斷循環(huán)雙鏈表是否為空,只要頭結(jié)點(diǎn)的prior和next都等于頭指針
2、靜態(tài)鏈表
靜態(tài)鏈表沒有通過指針來實(shí)現(xiàn),是通過數(shù)組來實(shí)現(xiàn)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
描述:
- 靜態(tài)鏈表的結(jié)點(diǎn)也有數(shù)據(jù)域和指針域,但指針域存放的不再是地址,而是結(jié)點(diǎn)的相對(duì)地址(就是數(shù)組下標(biāo))
- 因?yàn)槭菙?shù)組來描述,所以靜態(tài)鏈表也要預(yù)先分配一塊連續(xù)的內(nèi)存空間
- 數(shù)組第一個(gè)元素不存放數(shù)據(jù)(和頭結(jié)點(diǎn)和相似),他的指針域存放第一個(gè)元素所在的數(shù)組下標(biāo)
- 靜態(tài)鏈表的結(jié)束標(biāo)志有很多,上圖中-1就是,因?yàn)閿?shù)組下標(biāo)不可能為-1
- 靜態(tài)鏈表對(duì)不支持指針的高級(jí)語言(Basic)使用很方便
總結(jié)
以上是生活随笔為你收集整理的线性表----循环链表和静态链表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 170平米装修多少钱啊?
- 下一篇: 利用kali的msf提取汇编机器码(sh