資料結構 刪除鍊錶第index個結點(鍊錶)

2021-10-07 07:04:12 字數 1422 閱讀 8368

問題描述 :

輸入若干(不超過100個)非負整數,建立乙個不帶頭結點的單向鍊錶。在輸入乙個位置index,從鍊錶中刪除第index個結點,輸出結果鍊錶。

請編寫deletenode函式,完成刪除操作。deletenode函式的原型如下:

struct student *

deletenode

(struct student *head,

int index)

輸入說明 :

首先輸入若干非負整數,每個整數作為資料放入乙個鍊錶結點中,輸入-1表示輸入結束。

然後輸入若干組整數,每組一行,每行僅包含乙個整數,表示需要刪除的結點的位置index。如:輸入1表示刪除鍊錶的第乙個(最前面乙個)結點。

輸出說明 :

對於每組輸入,輸出刪除第index個結點之後的結果鍊錶。輸出的資訊以head開頭,以tail結尾,以「–>」分隔。具體見輸出範例。

如果輸入的index超出了鍊錶的範圍,則不刪除,輸出原鍊錶。如果是空鍊錶,則直接輸出「head–>tail」。

輸入範例 :

1000 2342 8883 -143

11輸出範例 :

head–>1000–>2342–>8883–>tail

head–>1000–>2342–>tail

head–>2342–>tail

head–>tail

#include

#include

struct student

;//從鍵盤讀入資料建立鍊錶,新結點插入到尾部

struct student *

createbytail()

p2->next=

null

;//切記:最後乙個結點的next賦值為null

return head;

}//輸出鍊錶中的資訊(num)

void

displaylink

(struct student *head)

printf

("tail\n");

}//刪除鍊錶中第index個結點。index從1開始。

//由於可能刪除第乙個結點,所以函式返回頭指標給主調函式

struct student *

deletenode

(struct student *head,

int index)

if(index>len || index<=0)

else

struct student *q;

if(p==head)

else

q->next=p-

>next;

}delete p;

}return head;

}int

main()

}

刪除鍊錶第index個結點

問題描述 輸入若干 不超過100個 非負整數,建立乙個不帶頭結點的單向鍊錶。在輸入乙個位置index,從鍊錶中刪除第index個結點,輸出結果鍊錶。輸入說明 首先輸入若干非負整數,每個整數作為資料放入乙個鍊錶結點中,輸入 1表示輸入結束。然後輸入若干組整數,每組一行,每行僅包含乙個整數,表示需要刪除...

3 刪除鍊錶第index個結點

問題描述 輸入若干 不超過100個 非負整數,建立乙個不帶頭結點的單向鍊錶。在輸入乙個位置index,從鍊錶中刪除第index個結點,輸出結果鍊錶。請編寫deletenode函式,完成刪除操作。deletenode函式的原型如下 struct student deletenode struct st...

資料結構 鍊錶的建立 刪除

1 介紹 鍊錶是一種物理儲存單元上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點 鍊錶中每乙個元素稱為結點 組成,結點可以在執行時動態生成。2 優點 使用鍊錶結構可以克服陣列鍊錶需要預先知道資料大小的缺點,鍊錶結構可以充分利用計算機記憶體空間,實現靈活...