通過二級指標插入節點

2021-06-16 20:47:00 字數 786 閱讀 2509

這是在程式設計珠璣的習題上看到的,p214第四題

節點的定義如下:

struct node

};

另外初始化的過程中,初始化頭結點,head=new node(maxval,0)其中maxval表示乙個最大值

通常的插入函式都會這樣來寫:

void insert(int t)

if(p->val==t)

return;

if(before==null)

head=new node(t,head);

else

before->next=new node(t,p);

}

但是,上述過程會分情況(在鍊錶最前面插入節點和在鍊錶中插入節點)來討論

下面就讓我們來看一下二級指標的威力:

void insert(int t)
最關鍵的一句就是*p=new node(t,*p),首先明確*p指的是第乙個比t大的元素,這個過程分為以下步驟:

2)將新節點的位址賦值給*p

目標是向鍊錶1,5中插入元素3,這時*p的位置在5這個元素上,步驟1)很好理解,關鍵是步驟2),當我們修改了*p的時候,有一點特別重要的是1的next存的是5的位址也就是*p並且*p存在變數p中,*p改變後1指向的元素也會隨之改變,p中放的元素相當於是3的位址,這樣就將1-3連在了一起。

通過檔案指標插入檔案內容

fseek pf,10,seek end 如果是這樣的話,那麼他所移動到的位置,右邊有10個數字。1.對檔案基本操作 file pf fopen path,r 檔案指標在頭部,不清空原來的內容。file pf fopen path,w 檔案指標在頭部,會清空原來的內容。file pf fopen p...

指標與二級指標

int num 10 int p1 int p2 p1 指標的指向結構如下圖所示 0x4000 0x3000 p2 0x2000 p1 num p2 表示的是儲存p2指標的位址 p2 表示的是p2指向的位址,即指標p1存放的位址 p2 表示指標p2指向位址中所存的值,即指標p1指向的位址,即變數nu...

一級指標二級指標

例如 int p null int代表指標p指向的資料型別是int型,代表這是乙個指標變數,1 指標變數儲存的內容是指向的變數的位址 2 在使用sizeof判斷指標的位元組數時,在32位機器上為4個位元組,在64位機器上為了相容,仍然是四個位元組大小 3 小知識點,不同型別的指標除了指向的變數資料型...