งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

บทที่ 5. Link List Link List โครงสร้างข้อมูลแบบ Link List เป็นโครง สร้างข้อมูลแบบ Linear ซึ่งอาจเป็น Single link list หรือ Double link list จุดประสงค์เพื่อสร้าง.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "บทที่ 5. Link List Link List โครงสร้างข้อมูลแบบ Link List เป็นโครง สร้างข้อมูลแบบ Linear ซึ่งอาจเป็น Single link list หรือ Double link list จุดประสงค์เพื่อสร้าง."— ใบสำเนางานนำเสนอ:

1 บทที่ 5

2 Link List Link List โครงสร้างข้อมูลแบบ Link List เป็นโครง สร้างข้อมูลแบบ Linear ซึ่งอาจเป็น Single link list หรือ Double link list จุดประสงค์เพื่อสร้าง Array แบบ Dynamic กล่าวคือ ไม่ต้องจองเนื้อที่ในหน่วยความจำ ล่วงหน้า แบบต่อเนื่อง แต่ละ element เรียกว่า โหนด ( node) ซึ่งประกอบด้วยข้อ มูล (information) และที่อยู่ (Address) ของโหนดถัดไปซึ่ง อาจเป็น Pointer หรือ Index ขึ้นอยู่กับการ Implement โหนดโดยทั่วไป จะอยู่ในรูปแบบ record หรือ Structure

3 Link List *** สิ่งที่ควรระวังคือ Pointer จะ หายหรือชี้ผิดที่ ยากต่อการ ค้นหาและตรวจสอบโปรแกรม

4 Link List การ Implement ด้วย Pointer ** สิ่งที่ควรระวัง : - ยุ่งยากและเข้าใจยาก - Hang ง่ายเพราะหา Pointer ไม่เจอ - Trace ยาก - ตัวแปรต้องประกาศเป็น Record ซึ่งประกอบด้วย * information * pointer

5 Link List ประเภทของ Link list - Single Link List - Double Link List ตัวอย่างการประกาศตัวแปรแบบ ภาษา -C typedef struct Reclink { char infor; struct Reclink *next; } typeNode; o o o typeNode *dummy, *node, *head, *tail; o o o

6 Link List node.infor ( เอา Address) *node.infor หรือ node- >infor ( เอาค่า ) Algorithm Create_Linklist(Head, Item) { new(node); node->infor = item; node->next = Null; head = node; // tail = head; }

7 Link List Insert_Linklist (Head, Tail, item) { new(node); node->infor = item; node->next = Null; // ต่อที่หัว // node->next = head; head = node; // ต่อที่ท้าย // tail->next = node; tail = node; }

8 Link List Display_Linklist (Head) { if(!head) Display (“ Empty Link list”); else { dummy = Head; while (dummy!= Null) { Display(dummy->infor); dummy = dummy->next; } ** ให้นิสิตทำ Display_Linklist (Head) แบบ Recursive

9 Link List Search_Linklist (Head, value) { if (!head) Display (“ Empty Link list”); else { Count = 0; dummy = Head; while (dummy) { if (dummy->infor = value) { Display(“ Found “); Count ++; } dummy = dummy->next; }

10 Link List if (Count = 0) Display(“ Not found”); else Display(“Delete = ” + Count + ”Value”); }//end else } *** ให้นิสิตหาโหนด ที่อยู่หน้าโหนด ที่ต้องการหา

11 Link List dummy->next = dummy- >next->next ? dummy dummy- >next prenode node prenode->next = node->next ? prenode->next = prenode->next->next ?

12 Link List Delete_Linklist (Head, item) { if (!head) Display (“ Empty Link list”); else { temp=dummy = head; if (dummy->infor = item) { head = head->next; free(temp); } else { prenode = search_Linklist (Head, item);

13 Link List if (prenode != Null) { temp = prenode->next; /* ? */ prenode->next = prenode->next->next; free(temp); } else Display("Not found"); } *** ถ้าต่อโหนด ที่หัวเรียกว่า Poly Front แต่ถ้าต่อเข้าที่ท้ายเรียกว่า Poly End


ดาวน์โหลด ppt บทที่ 5. Link List Link List โครงสร้างข้อมูลแบบ Link List เป็นโครง สร้างข้อมูลแบบ Linear ซึ่งอาจเป็น Single link list หรือ Double link list จุดประสงค์เพื่อสร้าง.

งานนำเสนอที่คล้ายกัน


Ads by Google