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

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

บทที่ 5 Link List Link List.

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


งานนำเสนอเรื่อง: "บทที่ 5 Link List Link List."— ใบสำเนางานนำเสนอ:

1 บทที่ 5 Link List Link List

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 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;

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) แบบ Recursive
{ 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); } { 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.

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


Ads by Google