無頭節點的單迴圈鍊錶中刪除指標s所指結點的前驅結點

2021-07-29 15:42:00 字數 1225 閱讀 6942

#include typedef int elemtype;

typedef struct

lnode, *clinklist;

void initlink(clinklist l);//初始化頭節點

void createlink(clinklist l, elemtype *arr, int n);//用長度為n的陣列建立鍊錶

void showlist(clinklist l);//輸出指定節點之後的所有節點

//返回l後第n個節點(n可超過l的總節點個數)

lnode *crelnodepoint(clinklist l, int n);

//刪除s的前驅節點

void delprior(lnode *s);

int main()

; int length = sizeof(data) / sizeof(elemtype);

clinklist l = (clinklist)malloc(sizeof(clinklist));

lnode *s;

initlink(l);

createlink(l, data, length);

printf("原鍊錶:\t\t");

showlist(l);

s = crelnodepoint(l,4);//製作指向迴圈鍊錶某節點的指標

delprior(s);//刪除s的前驅節點

printf("s指向的資料為%d\n",*s);

printf("刪除其前驅節點:\t");

showlist(l);

getchar();

return 0;

}void initlink(clinklist l)

void createlink(clinklist l, elemtype *arr, int n)

}void showlist(clinklist l)

printf("%d ", r->data);

printf("\n");

}//返回l後第n個節點(n可超過l的總節點個數)

lnode *crelnodepoint(clinklist l, int n)

return s;

}//刪除s的前驅節點

void delprior(lnode *s)

r->next = s;

free(p);

}

程式設計之美 無頭鍊錶刪除節點

問題描述 乙個沒有頭指標的鍊錶,從其中刪除任意乙個中間節點 非第乙個,也不是最後乙個 思路 因為當前節點是要被刪除的,所以當前節點的值已經不需要被儲存了,可以直接用下乙個節點的值將其替換。然後,直接刪除下乙個節點即可。void delete node stnode target p target t...

從無頭鍊錶中刪除節點

程式設計之美 第3.4節 從無頭鍊錶中刪除節點 問題 假設有乙個沒有頭指標的單鏈表。乙個指標指向此單鏈表中間的乙個節點 不是第乙個也不是最後乙個節點 請將該節點從單鏈表中刪除 解法 題目中已經說明既不是頭節點也不是尾節點,因此不用考慮特殊情況。要解這個題首先的思路是尋找前乙個節點的指標,但是由於這是...

3 4 從無頭鍊錶中刪除節點

假設有乙個沒有頭指標的單鏈表,乙個指標指向中間的乙個節點,不是第乙個節點,也不是最後乙個節點,刪除該節點 給你乙個鍊錶,只遍歷一次,在原地翻轉鍊錶 class test public static void main string args 從無頭節點單鏈表中刪除節點 public void del...