C 鍊錶 木有用,寫著玩

2021-08-07 20:12:59 字數 1950 閱讀 7791

//移除最後乙個的節點 使用二級指標更好

int removefromlast(node ** firstlocation)

if (head->next == null)

node * current = head;

while (current->next->next != null)

free(current->next);

current->next = null;

return 0;

}//列印所有的節點 通過頭節點

void printlist(node * head)

while (current != null)

}//在結尾新增乙個數字

void pushend(node * head, int val)

node * va = malloc(sizeof(node));

va->next = null;

va->value = val;

current->next = va;

}//新增到首個節點

void addfirst(int val, node ** head)

/** * 移除第乙個節點,返回第乙個值,修改head指標

*/int removefromfrist(node ** head)

int va = (*head)->value;

first = *head;

*head = (*head)->next;

free(first);

return va;

}//移除最後乙個元素

//條件是:首位為空情況下,第二位為空情況下,第三位為空?

//為啥並滅有實際改變這個值??

//通過下標移除節點

//從中間進行移除,需要從中間進行刪除,所以,需要知道之前節點,然後知道後面節點 長度大於這個長度怎麼辦

void removebyindex(int index, node**head)

int i;

node * previous;

for (i = 0; i < index; i++) else

} //將節點放到接到後面,然後釋放到當前節點記憶體

if (current == null) else

}/**

*通過值進行刪除,首先考慮刪除乙個,然後考慮如何進行刪除多個操作

*刪除多個可以通過多次迴圈執行這東西,所以需要有所返回

*/int removebyvalue(node**head, int val)

node * previous;

while (current != null && current->value != val)

if (current != null) else

}

鍊錶合併:

//合併兩個鍊錶 獲取的鍊錶是有序的 被合併的兩個鍊錶也是有序的,這裡都是公升序

//改變兩個鍊錶,利用之前鍊錶生成新的鍊錶

int megelist(node *first, node * second) else

while (first != null && second != null) else

} head->next = first ? first : second;

return one;

}//合併值,並不改變之前的兩個鍊錶

int mergevalue(node* fir, node* sec) else

while (fir!=null && sec!=null) else

} while (fir)

while (sec)

head->next = null;

return one;

}

寫著玩的,木有啥用

玩鍊錶 oj

time limit 1000ms memory limit 65536kb problem description blue 獲得了乙個含有 n 個數的初始鍊錶,現在他要把另外的一些數插入到鍊錶的開頭。你能幫他完成嗎?input 輸入資料有多組 資料組數不超過 20 到 eof 結束。對於每組資料...

C 中實現鍊錶(本人覺得有用)

由於c 是物件導向的,但比之c 而言,缺少了指標這一功能,雖然沒了繁瑣的指標,但有得必有失,本人總結了在c 中通過類來實現c 中用指標實現的鍊錶的功能。個人覺得比較有用。public class link 關於此函式的說明,classmates,teacher,friend均是node的基類,特此說...

c語言鍊錶 鍊錶

在儲存一大波數的時候,我們通常使用陣列,但有時候陣列顯得不夠靈活,比如有一串已經從小到大排序好的數 2 3 5 8 9 10 18 26 32 現在需要往這串數中插入6使其得到的新序列仍符合從小到大排列。如果我們使用陣列來實現這一操作,則需要將8和8後面的數字都依次往後挪一位,如果你覺得這幾個數不算...