[問題] 資料結構裡的單向鏈結是如何儲存資料的

看板C_and_CPP (C/C++)作者 (令狐瑜)時間13年前 (2012/08/11 11:28), 編輯推噓1(109)
留言10則, 7人參與, 最新討論串1/2 (看更多)
暑假在家自學Data Structure 算是新手中的新手 用的語言是C++ 對於單向鏈結這部分一直有個疑問 就是輸進去的資料在電腦裡是如何儲存的? 像是array在存資料的時候 每筆資料是一個接著一個的儲存 然後每筆資料都有一個相對應的位址而且是有規律的 但我就不太清楚用單向鏈結這個方式儲存資料時 資料是存在哪裡?又是用什麼方式(規則)被儲存的? 他們也像array裡的資料每個都佔有一個個別的位址嗎? 目前我對單向鏈結的理解 就是它是利用 [資料 | 指向下一個位置的指標] 這樣的格式來做排序或插入資料等處理 不過每筆資料沒辦法讓我以位址的對應關係來聯想我就會覺得怪怪的...... 以下附上一小段我照書上打的程式碼 void single_list::in()是用來輸入學生分數並排序的 ------------------------------------------------- typedef struct student { char name[20]; int ds; struct student *next; }Node_type; class single_link { Node_type *ptr; Node_type *head; Node_type *tail; Node_type *current; Node_type *prev; public: single_link(); void in(); void del(); void mod(); void out(); void info(); }; void single_link::in() { ptr = new Node_type; cout << "Student name:"; cin >> ptr->name; cout << "Data structure score:"; cin >> ptr->ds; current = new Node_type; prev = head; current = head->next; while(current!=NULL && current->ds > ptr->ds) { prev = current; current = current->next; } ptr->next = current; prev->next = ptr; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.140.116

08/11 12:07, , 1F
struct分兩部份,一部分是存資料,另一部分指向下個
08/11 12:07, 1F

08/11 12:07, , 2F
資料就是存在你struct裡面宣告的int那個
08/11 12:07, 2F

08/11 13:14, , 3F
當然都是存在記憶體,看compiler怎麼處理咯~
08/11 13:14, 3F

08/11 13:15, , 4F
這就跟你不知道int是存在哪裡是一樣的
08/11 13:15, 4F

08/11 13:15, , 5F
而指標就是紀錄下一個資料的記憶體位址
08/11 13:15, 5F

08/11 15:25, , 6F
關鍵是new
08/11 15:25, 6F

08/11 15:46, , 7F
不知道這篇是不是你要的 #1G33wKbT (C_and_CPP)
08/11 15:46, 7F

08/11 21:48, , 8F
圖文並茂!!我仔細研讀一下,謝謝愛迪生XD
08/11 21:48, 8F

08/12 00:34, , 9F
File Allocation Table 結構圖, 一張就夠
08/12 00:34, 9F

08/12 11:21, , 10F
又不是要寫到disk上怎麼會扯到FAT去
08/12 11:21, 10F
文章代碼(AID): #1G9T5Ml2 (C_and_CPP)
文章代碼(AID): #1G9T5Ml2 (C_and_CPP)