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