由此可見,所有需要在Linked list中尋找特定資料的操作,都會用上Traversal。 程式範例如下:. // C++ code void LinkedList::PrintList(){ if ... ... <看更多>
「鏈結串列 題目」的推薦目錄:
- 關於鏈結串列 題目 在 [問題] linked list的插入、刪除(詳情請入內) - 看板C_and_CPP 的評價
- 關於鏈結串列 題目 在 Linked List: 新增資料、刪除資料、反轉 的評價
- 關於鏈結串列 題目 在 【LeetCode 挑戰賽】什麼是鏈結串列? | 小碼農米爾Mir 的評價
- 關於鏈結串列 題目 在 嗡嗡的隨手筆記- 題目出處206. Reverse Linked List 難度easy ... 的評價
- 關於鏈結串列 題目 在 LinkedList 鏈結串列、遞迴相關題型- 個人看板板 - Dcard 的評價
- 關於鏈結串列 題目 在 鏈結串列多項式的評價費用和推薦,EDU.TW、YOUTUBE 的評價
- 關於鏈結串列 題目 在 z2x3c4v5bz/Learning--C_intro_4th_ed: 書籍「C 語言教學手冊 ... 的評價
鏈結串列 題目 在 【LeetCode 挑戰賽】什麼是鏈結串列? | 小碼農米爾Mir 的推薦與評價
328 - Odd Even Linked List 連結: https://leetcode.com/problems/odd-even-linked-list/ 難度: Medium 感謝大家觀看,我們下次見。 ... <看更多>
鏈結串列 題目 在 嗡嗡的隨手筆記- 題目出處206. Reverse Linked List 難度easy ... 的推薦與評價
題目 出處206. Reverse Linked List 難度easy 題目分類Linked List, Recursion Linked List reverse 反轉操作part 3 part1 基本概念請參考: 【Leetcode】python ... ... <看更多>
鏈結串列 題目 在 LinkedList 鏈結串列、遞迴相關題型- 個人看板板 - Dcard 的推薦與評價
LeetCode in JavaScript 刷題直播:LinkedList 鏈結串列、遞迴相關題型. 個人看板. 4月10日12:35. 大家好,我是彭彭,想要來分享即將在【4/13 本週四,晚上9 點鐘】 ... ... <看更多>
鏈結串列 題目 在 z2x3c4v5bz/Learning--C_intro_4th_ed: 書籍「C 語言教學手冊 ... 的推薦與評價
書籍「C 語言教學手冊第四版」練習題我的解答,約於2016 年左右完成,供同為自學的夥伴 ... Chapter 13 -- 大型程式的發展; Chapter 14 -- 動態記憶體配置與鏈結串列 ... ... <看更多>
鏈結串列 題目 在 [問題] linked list的插入、刪除(詳情請入內) - 看板C_and_CPP 的推薦與評價
※ 引述《shieldsky (soarfox)》之銘言:
: 大家好!我最近在寫一個C語言linked list的作業,
: 但我寫完之後,不論怎樣更改程式碼,
: 在輸入一些節點後,選擇刪除掉某些節點,刪除完就會出現一些小問題,
: 可能是某個後端節點的值被刪掉後,卻莫名地在最前端多出一個0值,
: 或者刪除掉前端節點的值後,前端節點反而變成一個亂數值!
: 因為自己已經想了好幾天,也翻過板上的文章與精華區,
: 自己手邊唯一一本C語言教學手冊也看了好久,但總是無法修正這些BUG,
: 所以才POST到板上,希望能夠獲得解決的辦法,謝謝各位。
: 以下是題目要求:
: 1.請使用鏈結串列 (Linked List) 資料型態完成程式。
: 2.使用者可以選擇 1.新增節點 或 2.刪除節點 兩種功能。
: 3.使用者選擇功能後,輸入一數字,必須在串列中找到適當的位置,插入或移除該節點。
: 4.執行功能後將串列完整印出,並回到功能選擇的步驟。
: 開發平台:Windows XP 使用語言:C語言 使用軟體:DEV-C++ version 4.9.9.2
: 有問題的code:
: https://nopaste.csie.org/60b0d
: 補充說明:
: 雖然這個題目的程式碼自己前前後後寫了好幾次才有今日的雛形,
: 但總覺得自己還是不太清楚我到底是瞭解linked list的基礎了沒?
: 好像常有一種似懂非懂的不確定感在漂浮著,請問有無什麼檢驗自己觀念的方法呢?
我不懂為什麼insert node需要三個…!?
以下是個人的看法:
typedef struct node
{
int data;
node* nextNode; ///< 我覺得這樣比較好懂這個link在做什麼
/// 視需要可以加上 node *prevNode; 變成雙向的連結
} NODES;
void insertNode(NODES *node, int data)
{
NODES *newNode = (NODES *)malloc(sizeof(NODES));
newNode->data = data;
// 串連起來
newNode->nexeNode = node->nextNode;
node->nextNode = newNode;
}
這樣的話,
本來是 node---->nextNode 會變成
node---->newNode---->nextNode
那回過頭來看一下你的insertNode1
#
/*insertnode1(); function*/ /*新增前端的值*/
NODES* insertnode1(NODES *head,NODES *node,int a) /*node為前端head,a為欲插在head之後的值*/
{
NODES *newnode; /*動態配置一個空間給新結點使用*/
newnode=(NODES *)malloc(sizeof(NODES));
newnode->data=a; /*設值給新結點*/
newnode->link=node; /*設定新結點與前端節點的關係*/
head=newnode; /*關鍵coding:"令新節點成為head"*/
return head; /*關鍵coding:"將更改完成的head傳回去;否則,在此設定的head,將只運用於此insertnode1(); function中而已"*/
}
傳入了head, node, 和a
我不清楚head和node之間的關係是怎麼樣,從這邊看來,link會成為
newnode->link = node;
示意圖: newnode---->node---->link
head = newnode;
示意圖: 這一行沒有意義…新節點不會因為這樣成為head。
打到這邊… 再看你的註解…
我想你應該回頭去看一下關於pointer那章節的書。
你應該是對pointer的概念還不夠清楚吧。
補記:就如上一篇3F的w大說的,把address print出來看看。
會比較知道發生了什麼事情。
--
或許人生是一段整合內在的自己
並尋求人間一點真情的過程吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.216.118.152
※ 編輯: aecho 來自: 61.216.118.152 (11/01 07:55)
... <看更多>