[問題] Linked list 想法是否正確
各位前輩大家好 小弟最近自學C語言到資料結構的部分
今天在練習單向的單向鏈結
我用的是 Dev C++來寫 電腦是win7
因為剛進入這個章節所以只是先簡單的 創造節點 連結節點 刪除節點
我預期的動作流程如 http://imgur.com/qYbrYgG
程式碼如下
#include<stdio.h>
#include <stdlib.h>
struct listNode {
char data;
struct listNode *nextPtr;
};
typedef struct listNode *ListNodePtr;
int main(void){
ListNodePtr startptr=NULL;//把startptr指向NULL
ListNodePtr ONE_node;//創立第一個節點
ONE_node=(ListNodePtr)malloc(sizeof(listNode));//給定實體空間
startptr=ONE_node;//把startptr指向第一個節點
ONE_node->data=10;
ONE_node->nextPtr=NULL;//把第一個節點指向NULL
ListNodePtr TWO_node;//創立第二個節點希望把第一個節點指向第二個節點
TWO_node=(ListNodePtr)malloc(sizeof(listNode));//給定實體空間
TWO_node->data=11;
TWO_node->nextPtr=NULL;//把第二個節點指向NULL
ONE_node->nextPtr=TWO_node;//把第一個節點指向第二個節點
ListNodePtr THREE_node;//創立第三個節點希望第二個節點指向第三個節點
THREE_node=(ListNodePtr)malloc(sizeof(listNode));//給定實體空間
THREE_node->data=13;
THREE_node->nextPtr=NULL;//把第三個節點指向NULL
TWO_node->nextPtr=THREE_node;//把第二個節點指向地三個節點
ListNodePtr FOUR_node;//創立第四個節點
//希望插在第二個節點和第三個節點中間
FOUR_node=(ListNodePtr)malloc(sizeof(listNode));//給定實體空間
FOUR_node->data=12;
TWO_node->nextPtr=FOUR_node;//把第二個節點指向第四個節點
FOUR_node->nextPtr=THREE_node;//把第四個節點只向第三個節點
printf("\n%s",THREE_node->nextPtr);
printf("\n%d",THREE_node);
printf("\n%d",FOUR_node->nextPtr);
/////////////////////////////////////////////////////
//刪除節點
//我希望能刪除第一個節點
startptr=TWO_node;//先把起始位置改成第二個節點
free(ONE_node);//釋放第一個節點
printf("\n%d",ONE_node->data);
//這裡輸出的值是-112不知道是否正確
////////////////////////////////////////////////////
//希望能刪除第四個節點
//把第二個節點指向第三個節點
TWO_node->nextPtr=THREE_node;
free(FOUR_node);//釋放第四個節點
printf("\n%d",TWO_node->nextPtr);
printf("\n%d",THREE_node);
printf("\n%d",FOUR_node->nextPtr);
}
因為自己練習的所以不太知道這樣做是否正確,想請前輩們幫小弟看一下
感覺這個章節有點困難似懂非懂的,而且這個做法好像有點蠢
再麻煩各位前輩了
萬分感謝!!感激不盡!!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.89.201
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1460385882.A.255.html
※ 編輯: sbk8027 (1.169.89.201), 04/11/2016 22:53:00
→
04/11 22:59, , 1F
04/11 22:59, 1F
→
04/11 23:00, , 2F
04/11 23:00, 2F
推
04/11 23:01, , 3F
04/11 23:01, 3F
推
04/11 23:02, , 4F
04/11 23:02, 4F
推
04/11 23:15, , 5F
04/11 23:15, 5F
推
04/11 23:25, , 6F
04/11 23:25, 6F
推
04/11 23:43, , 7F
04/11 23:43, 7F
推
04/11 23:47, , 8F
04/11 23:47, 8F
→
04/11 23:47, , 9F
04/11 23:47, 9F
推
04/11 23:53, , 10F
04/11 23:53, 10F
→
04/11 23:56, , 11F
04/11 23:56, 11F
→
04/11 23:56, , 12F
04/11 23:56, 12F
→
04/11 23:58, , 13F
04/11 23:58, 13F
推
04/12 00:02, , 14F
04/12 00:02, 14F
推
04/12 00:05, , 15F
04/12 00:05, 15F
→
04/12 00:07, , 16F
04/12 00:07, 16F
推
04/12 00:07, , 17F
04/12 00:07, 17F
推
04/12 00:13, , 18F
04/12 00:13, 18F
推
04/12 00:14, , 19F
04/12 00:14, 19F
→
04/12 00:14, , 20F
04/12 00:14, 20F
→
04/12 00:15, , 21F
04/12 00:15, 21F
→
04/12 00:23, , 22F
04/12 00:23, 22F
→
04/12 00:23, , 23F
04/12 00:23, 23F
推
04/12 00:26, , 24F
04/12 00:26, 24F
→
04/12 00:26, , 25F
04/12 00:26, 25F
推
04/12 00:27, , 26F
04/12 00:27, 26F
推
04/12 00:32, , 27F
04/12 00:32, 27F
→
04/12 23:12, , 28F
04/12 23:12, 28F