Re: [問題] C語言初學指引-鏈接串列
看了四天終於有一點頭緒了
因為不是本科系,想把自己的想法PO上來請大家指正
程式碼:
https://pastebin.com/pvip381x
---------------------------------------------------------
第7行~11行
---------------------------------------------------------
struct Node
{
int data;
struct Node *link;
};
定義一個資料結構叫做Node,包含兩個部分
一個是int 的資料型態,變數名稱為data
另一個是"存放"struct Node的指標變數,指標變數名稱為link
//更正: link 指標變數指向 struct Node//
因為是指向 struct Node 所以要
struct Node *link;
不可以 int *link
---------------------------------------------------------
22行~31行
---------------------------------------------------------
nodePointer GetNode()
{
nodePointer NewNode;
NewNode=(nodePointer) malloc(sizeof(node));
if(NewNode==NULL)
{
printf("記憶體不足!");
exit(1);
}
return NewNode;
}
23行
定義一個指標變數為 NewNode
24行
sizeof(node)計算出一個節點需要多少空間的記憶體
再用malloc 配置一個記憶體空間
並回傳開頭的記憶體位置,(nodePointer)轉型指標
有點像是格式化這個空間成為struct Node
最後NewNod為該空間的指標。
// 更正: (nodePointer) 代表malloc指標指向struct Node
---------------------------------------------------------
75行開始
---------------------------------------------------------
由main讀這個程式,當Balls=insertLast(Balls,27);
程式呼叫insertLast函式時,Balls 值為NULL,data 為27
會複製一份給 L=insertFirst(L,d) 中的(L,d) 此時L = NULL , d = 27
執行 insertFirst(L,d) 新增/插入第一個節點
39行
nodePointer insertFirst(nodePointer L,int d)
{
nodePointer n;
n=GetNode();
n->data=d;
n->link=L;
L=n;
return L;
}
n 為指標,指向新節點
*(n).data = 27
*(n).data = NULL
L=n;
L 的值原本是 NULL 改成 n (指標)
最後回傳L
Balls=insertLast(Balls,27);
Balls=L=n 此時串列第一個指標為 Balls
請大家不吝指正,謝謝~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.77.16
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1520746207.A.207.html
推
03/11 13:32,
8年前
, 1F
03/11 13:32, 1F
→
03/11 13:32,
8年前
, 2F
03/11 13:32, 2F
※ 編輯: pi2324 (36.226.77.16), 03/11/2018 13:57:19
推
03/11 19:39,
8年前
, 3F
03/11 19:39, 3F
→
03/11 19:52,
8年前
, 4F
03/11 19:52, 4F
→
03/11 20:10,
8年前
, 5F
03/11 20:10, 5F
→
03/11 23:09,
8年前
, 6F
03/11 23:09, 6F
→
03/11 23:10,
8年前
, 7F
03/11 23:10, 7F
→
03/11 23:17,
8年前
, 8F
03/11 23:17, 8F
→
03/11 23:20,
8年前
, 9F
03/11 23:20, 9F
→
03/12 00:00,
8年前
, 10F
03/12 00:00, 10F
→
03/12 00:00,
8年前
, 11F
03/12 00:00, 11F
→
03/12 00:01,
8年前
, 12F
03/12 00:01, 12F
推
03/12 04:37,
8年前
, 13F
03/12 04:37, 13F
推
03/12 11:34,
8年前
, 14F
03/12 11:34, 14F
→
03/13 00:21,
8年前
, 15F
03/13 00:21, 15F
→
03/13 00:34,
8年前
, 16F
03/13 00:34, 16F
→
03/13 00:34,
8年前
, 17F
03/13 00:34, 17F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
6
10
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章