「c linked list教學」的推薦目錄:
- 關於c linked list教學 在 コバにゃんチャンネル Youtube 的最佳貼文
- 關於c linked list教學 在 大象中醫 Youtube 的最讚貼文
- 關於c linked list教學 在 大象中醫 Youtube 的最佳解答
- 關於c linked list教學 在 [問題] linked list的插入、刪除(詳情請入內) - 看板C_and_CPP 的評價
- 關於c linked list教學 在 Linked List: 新增資料、刪除資料、反轉 的評價
- 關於c linked list教學 在 XOR 連結列表| 他山教程,只選擇最優質的自學材料 的評價
- 關於c linked list教學 在 Newest Questions - Stack Overflow 的評價
c linked list教學 在 大象中醫 Youtube 的最讚貼文
c linked list教學 在 大象中醫 Youtube 的最佳解答
c linked list教學 在 Linked List: 新增資料、刪除資料、反轉 的推薦與評價
這樣便把Linked list的node刪除完畢。 cc. 圖五(c)。 程式範例如下:. // C++ code void ... ... <看更多>
c linked list教學 在 XOR 連結列表| 他山教程,只選擇最優質的自學材料 的推薦與評價
C 中的示例程式碼. placeholderCopy /* C/C++ Implementation of Memory efficient Doubly Linked List */ #include <stdio.h> #include <stdlib ... ... <看更多>
c linked list教學 在 [問題] 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)
... <看更多>