บทที่ 5 Link List Link List.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Another one of Data Structure
Advertisements

Arrays.
Introduction to C Introduction to C.
Lists Data Structure LAUKHWAN NGAMPRASIT LAUKHWAN NGAMPRASIT.
รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี
โครงสร้างของโหนด Successor = Node ที่อยู่ถัดไปจาก Node ที่ใช้งานอยู่
บทที่ 6 โครงสร้างข้อมูลลิ้งค์ลิสต์
[][Data][] [][1][]<->[][5][]<->[][3][]<->[][8][null]
บทที่ 6 โครงสร้างข้อมูลลิ้งค์ลิสต์
บทที่ 11 การเขียนโปรแกรมโดยใช้ข้อมูลชนิดพอยท์เตอร์
สภาวะแวดล้อมในขณะโปรแกรมทำงาน
Functional programming part II
Stack.
6. โครงสร้างข้อมูลแบบแฟ้ม
การเรียงลำดับและการค้นหาแบบง่าย
Structure Programming
Data structure & Algorithms
Structure.
LAB # 5 Computer Programming 1 1.
บรรยายครั้งที่ 3: Queue
วิชา การออกแบบและพัฒนาซอฟต์แวร์
Linked-List (รายการโยง)
โปรแกรมย่อย : Pascal Procedure
ตัวแปรชุด.
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
คิวQueue Circular Queue.
บทที่ 2 Queue Queue.
การเขียนผังงานแบบโครงสร้าง
ข้อมูลชนิดอาร์เรย์ ประเภทของข้อมูลที่ผ่านมาส่วนใหญ่ในตอนต้นๆจะเป็นข้อมูลเดี่ยว โดยตัวแปรหนึ่งตัวสามารถเก็บข้อมูลได้หนึ่งตัว ถ้าหากต้องการเก็บข้อมูลหลายตัวจะต้องประกาศตัวแปรหลายตัว.
บทที่ 7 คำสั่งสำหรับเขียนโปรแกรม
โครงสร้างข้อมูลแบบคิว
คิว ลักษณะการทำงานของ Queue การดำเนินการของ Queue การตรวจสอบ Queue
สแตค(stack) โครงสร้างข้อมูลแบบ Stack - การสร้าง Stack
คิว (Queue) Queue ADT Queue เป็น List ชนิดหนึ่ง แต่สำหรับ queue การแทรกข้อมูลลงบน queue (Insertion) จะทำที่ปลายใดปลายหนึ่งของ Queue ในขณะที่การลบข้อมูลออกจากคิว.
List ADTs By Pantharee S..
Linked List (ลิงค์ลิสต์)
ตัวแปรกับชนิดของข้อมูล
Linked List List is group of nodes that consists of data and link.
21 August ดรุณี ศมาวรรตกุล 1 2. ADT List - Unsorted list ADT - list implementation - Sorted List - Circular list - Doubly linked list.
Recursion การเรียกซ้ำ
ลิงค์ลิสต์ (Linked List)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
โครงสร้างข้อมูลแบบรายการโยง (Link List)
School of Information Communication Technology,
รายการโยง (linked lists) หอยทอด 30 ข้าวผัด 30 ไก่ย่าง 50 เนื้อทอด 30
โครงสร้างข้อมูลแบบลิงก์ลิสต์
บทที่ 6 พจนานุกรมข้อมูล และ คำอธิบายกระบวนการ
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Int isEmpty ( node **ptr_head) ; parameter ชื่อของตัวแปรลิสต์ที่จะตรวจสอบว่า ว่างหรือไม่ return value มีได้ 2 สถานะ คือ ว่าง (1) หรือ ไม่ ว่าง (0) body.
รายการ (Lis t) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong.
DATA STRUCTURE AND ALGORITHM Linked List.
Linked List (2) Sanchai Yeewiyom School of Information & Communication Technology University of Phayao.
QueueQueue Lecturer : Kritawan Siriboon, Room no. 913 Text : Data Structures & Algorithm Analysis in C, C++,… Mark Allen Weiss, Addison Wesley.
Linked List ( ต่อ ) Lecturer : Kritawan Siriboon, Room no. 913 Text : Data Structures & Algorithm Analysis in C, C++,… Mark Allen Weiss, Addison Wesley.
Queue Sanchai Yeewiyom School of Information & Communication Technology University of Phayao.
Queue Lecturer : Kritawan Siriboon, Room no. 913
รายการ(List) [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List.
Data Structure & Algorithm Concept
Linked List.
int isEmpty ( node **ptr_head) ;
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
Linked List Lecturer : Kritawan Siriboon, Room no. 913
Queue [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List (ต่อ) Lecturer : Kritawan Siriboon, Room no. 913
4 โครงสร้างข้อมูลแบบลิงค์ลิสต์ (LINKED LIST).
ใบสำเนางานนำเสนอ:

บทที่ 5 Link List Link List

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

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

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

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;

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

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

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

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;

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

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

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

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