資料結構中跳過集合,直接開始線性結構
線性結構中單鏈表的操作涉及到給乙個變數賦值位址,所以涉及到了指標
通過指標裡的位址很方便找到節點
但指標這裡繞了我很長時間,不論學了多少遍也不敢說把指標學會了
位址是什麼,從**來? 位址是記憶體中每個位元組的編號
我的電腦記憶體是4g=4×1024(m)×1024(k)×1024(byte)=4294967296 byte
其中每個位元組byte=8位bit
如果為每乙個位元組編碼,那麼範圍為0~4294967295(十進位制)
換算為2進製:0000 0000 0000 0000 ~ 1100 1101 1111 1111 1111 1111 1111 1111(32bit)
換算為16進製制:0x 00000000 ~ 0xcdffffff
所以人們就用:0x 00000000 ~ 0xffffffff 來表示記憶體位址的範圍
其中乙個位元組分配乙個位址
指標是什麼,從**來?指標是儲存位址的變數
記憶體編號為 0xcdffffff的空間裡存了乙個整數3
將0xcdffffff這個位址存放到記憶體編號為0xcdfffff0的記憶體空間中
在程式中宣告了乙個整型的指標變數,這個變數裡存的就是0xcdfffff0
由於這個指標所指向的位址空間裡存放的是個整型數,所以這個指標的型別就為整型
*代表 指向某個記憶體編號(位址)的指標
& 取出位址
&(*a) 取出位址變數*a的儲存內容,結果為0xcdffffff
帶*號的不一定就是指標,&取位址符的結果也不一定就是位址,因為有時候會用巢狀,使得問題不能直**出來!
這時候,最最最重要的就是看 *後面的變數名裡存的究竟是什麼。
如果是乙個真實的記憶體編號,那才是指標
例如:
c語言的表示
p 是乙個指標,指標裡存放的是結點a的位址
p-> 代表 指標p所存的位址對應的內容,這裡p指標裡存的是個節點,所以p->代表結點
p->next 代表 取這個節點的指標域的內容,這樣就得到了下乙個節點所在的記憶體位址
p->data 代表 取這個節點的資料域的內容
資料結構頭指標鍊錶
頭指標鍊錶 頭指標煉表相較於頭結點鍊錶操作起來更繁瑣。以下是頭指標鍊錶的基本操作 include include define true 1 define false 0 typedef int linkdata 鍊錶的資料型別 typedef struct node node 鍊錶的頭插 int ...
資料結構(鍊錶雙指標)2020 08 10
給定兩個 單向 鍊錶,判定它們是否相交並返回交點。請注意相交的定義基於節點的引用,而不是基於節點的值。換句話說,如果乙個鍊錶的第k個節點與另乙個鍊錶的第j個節點是同一節點 引用完全相同 則這兩個鍊錶相交。輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,...
資料結構中煉表模板
include include typedef struct node node 鍊錶輸出 void output node head printf r n 鍊錶建立 node creat head pstnext null p head while cycle s ndate date p pst...