21 August 2014 204351 ดรุณี ศมาวรรตกุล 1 2. ADT List - Unsorted list ADT - list implementation - Sorted List - Circular list - Doubly linked list.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Advertisements

C# เบื้องต้น ก่อนการเขียนเกมด้วย XNA
คำสั่ง DISPLAY รูปแบบที่ 1 DISPLAY identifier-1, identifier-2 … literal-1 literal-2 [ UPON mnemonic-name ]  ตัวอย่าง DISPLAY STUDENT-NAME. DISPLAY.
1 C Programming An Introduction. 2 Preprocessing Directives เขียนได้ 2 รูปแบบ #include คอมไพเลอร์จะทำ การค้นหาเฮดเดอร์ไฟล์ที่ระบุ จากไดเร็คทอรีที่ใช้
Finite and Infinite Sets, Null set
INC 551 Artificial Intelligence Lecture 2. Review Environment Action Sense, Perceive Make Decision Agent World Model Deliberative Agent.
วิชา องค์ประกอบศิลป์สำหรับคอมพิวเตอร์ รหัส
Lists Data Structure LAUKHWAN NGAMPRASIT LAUKHWAN NGAMPRASIT.
[][Data][] [][1][]<->[][5][]<->[][3][]<->[][8][null]
โครงการแลกเปลี่ยนเรียนรู้ เกี่ยวกับระเบียบกระทรวงการคลัง
VARIABLES, EXPRESSION and STATEMENTS. Values and Data Types Value เป็นสิ่งพื้นฐาน มีลักษณะเป็น ตัวอักษร หรือ ตัวเลข อาทิ 2+2 หรือ “Hello world” Value.
Data Structures and Algorithms
โครงสร้างข้อมูลแบบรายการโยง (Linked Lists) Data Structures and Algorithms อ. ธารารัตน์ พวงสุวรรณ คณะวิทยาศาสตร์และศิลปศาสตร์ มหาวิทยาลัยบูรพา วิทยาเขตสารสนเทศจันทบุรี
ระบบการจัดเก็บในคลังสินค้า
Stack.
AVL Tree.
บทที่ 12 Virtual Private Networks
Principal Facts and Ideas Objectives 1. 1.Understand principal properties of central-force problem 2. 2.Solve problems : angular momentum of a single particle.
Linked-List (รายการโยง)
Chapter 19 Network Layer: Logical Addressing
Course Software Engineering SE Overview and Introduction.
Lecture no. 10 Files System
Chapter 3 Solution by Series. Introduction Complementary Function Particular Integral  Chapter 2 If F(x),G(x) are constant.
บทที่ 2 Queue Queue.
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (3) Function Growth & Time-Complexity
WEEK#16: Method เมธอดคือกลุ่มคําสั่งที่ถูกกําหนดขึ้นเพื่อทำงาน อย่างใดอย่างหนึ่งเพื่อให้ได้ผลลัพธ์ตาม ต้องการ การประกาศเมธอด มีรูปแบบดังนี้ [modifier]
By Dr Nongyao Premkamolnetr Policy Innovation Center, KMUTT 17 January 2009.
หน่วยที่ 17 แอเรย์ของสตรัคเจอร์. แอเรย์ของข้อมูลสตรัคเจอร์ student_info student[30]; Student[0]Student[0].Name Student[0].Midterm Student[0].Assignment.
Dynamic Link Library (DLL)
Chapter 2 Introduction to The C++ Language. Figure 2-1.
Enhanced Entity-Relationship Model © Pearson Education Limited 1995, 2005.
โครงสร้างข้อมูลแบบคิว
คิว (Queue) Queue ADT Queue เป็น List ชนิดหนึ่ง แต่สำหรับ queue การแทรกข้อมูลลงบน queue (Insertion) จะทำที่ปลายใดปลายหนึ่งของ Queue ในขณะที่การลบข้อมูลออกจากคิว.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
STACK ADT By Pantharee S.. Stack Model  A list with the restriction that insertions deletions can be performed in only one position (LIFO)  Push – insert.
List ADTs By Pantharee S..
เอกสารเรียนวันที่ 27 มกราคม 2555
Chapter 3 Simple Supervised learning
บทที่ 5 Link List Link List.
Chapter 1/1 Arrays. Introduction Data structures are classified as either linear or nonlinear Linear structures: elements form a sequence or a linear.
Linked List List is group of nodes that consists of data and link.
การเขียนโปรแกรม PHP เชื่อมต่อกับ MySQL
ลิงค์ลิสต์ (Linked List)
Object-Oriented Programming with Java Burapha University, 2001 Java Array and String Week #3 Jarungjit Parnjai.
Burapha University, 2001 Object-Oriented Analysis and Design Design Patterns Iterator Week #11 Jarungjit Parnjai.
คำสั่งเงื่อนไข (Condition Statement)
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
Introduction of DREAM สุวรรณา ประณีตวตกุล คณะเศรษฐศาสตร์ มหาวิทยาลัยเกษตรศาสตร์
โครงสร้างข้อมูลแบบรายการโยง (Link List)
Java collection framework
 Mr.Nitirat Tanthavech.  HTML forms are used to pass data to a server.  A form can contain input elements like text fields, checkboxes, radio-buttons,
TECH30201 Object-Oriented Programming
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Int isEmpty ( node **ptr_head) ; parameter ชื่อของตัวแปรลิสต์ที่จะตรวจสอบว่า ว่างหรือไม่ return value มีได้ 2 สถานะ คือ ว่าง (1) หรือ ไม่ ว่าง (0) body.
Week 13 Basic Algorithm 2 (Searching)
รายการ (Lis t) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong.
Linked List (2) Sanchai Yeewiyom School of Information & Communication Technology University of Phayao.
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.
Mark Allen Weiss, Addison Wesley
Linked List.
Queue [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List.
Stack Sanchai Yeewiyom
Linked List Lecturer : Kritawan Siriboon, Room no. 913
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 04: การวิเคราะห์หาความซับซ้อนด้านเวลา ในรูป.
Linked List (ต่อ) Lecturer : Kritawan Siriboon, Room no. 913
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 05: การวิเคราะห์ความซับซ้อนของ ขั้นตอนวิธีการเรียงลำดับข้อมูล.
Data Structures and Algorithms 2/2561
การวิเคราะห์และออกแบบขั้นตอนวิธี
ใบสำเนางานนำเสนอ:

21 August ดรุณี ศมาวรรตกุล 1 2. ADT List - Unsorted list ADT - list implementation - Sorted List - Circular list - Doubly linked list

21 August Data Structures 2 Unsorted list ADT Specification –ItemType : type ของ สมาชิกใน list –index: ตำแหน่งของสมาชิกใน list Operations –createList () –destroyList () –isEmpty () : boolean –getlength () : integer –insert (in index:integer, in newItem:ItemType) –remove (in index:integer) –retrieve (in index:integer, out dataItem: ItemType) Implementation –Array –pointer

21 August Data Structures 3 Array-based implementation Data structure const int maxList = 100; -- public typedef int itemType; -- public itemType items [maxList]; -private int size; -- private Operations –Public – ชื่อ operations –Private – ชุดคำสั่งของแต่ละ operation

21 August Data Structures 4 Array-based implementation Constructor Size = 0 insert(int index, itemType newItem) if (index>=1 and index<=size+1 and size<=maxList) { for (pos=size-1; pos>=index-1; --pos) items[pos+1] = items[pos]; items[index-1] = newItem; ++size; } getLength() return size;

21 August Data Structures 5 Array-based implementation remove (int index) retrieve(int index, itemType& dataItem)

21 August Data Structures 6 Pointer-based implementation Linked Lists Declare node ใน linked list -- private struct Node { itemType item Node *next; }; //end struct int size; Node *head; Allocate node แบบ dynamic Node *p; p = new Node; Node

21 August Data Structures 7 Pointer-based implementation Insert ที่ head Insert ที่ตำแหน่งใดๆ Insert ที่ตำแหน่งท้ายสุด

21 August Data Structures 8 Pointer-based implementation insert(int index, itemType newItem) newLength = getLength() + 1; if (index>=1 and index<=newLength) { newPtr = new Node; newPtr.item = newItem; size = newLength; if (index==1) { newPtr.next = head; head = newPtr; else { Node *prev = find(index-1); newPtr.next = prev.next; prev.next = newPtr; }

21 August Data Structures 9 Pointer-based implementation Find (int index) // find a node at position index if (index getLength()) return null; else { cur = head; for (i=1; i<index; ++i) cur = cur.next; return cur

21 August Data Structures 10 Delete Node ออกจาก Linked List Delete node แรก head=head->next; Delete node cur ที่อยู่ภายใน list prev->next=cur->next; Return deleted node to system cur->next = NULL; delete cur; cur=NULL;

21 August Data Structures 11 Pointer-based implementation remove (int index)

21 August Data Structures 12 Display contents ใน Linked List Traverse operation cur = head; while (cur != NULL) { cur = cur.next; print (cur.item); }

21 August Data Structures 13 Comparing Array-Based and Pointer-Based Implementations Size –Array-based : size fixed และต้องกำหนดล่วงหน้า Storage requirements –Array-based ใช้ memory น้อยกว่า pointer-based Access time –Array-based: constant access time –Pointer-based: access time ของnode ที่ i ขึ้นกับi Insertion and deletions –Array-based: ต้องมีการ shift data –Pointer-based: ต้องทำ list traversal

21 August Data Structures 14 Dummy Head Nodes Dummy head node –จะปรากฏอยู่เสมอ แม้ว่า linked list จะ empty –Insertion และ deletion algorithms initialize prev ชี้ไปที่ dummy head node มากกว่าที่จะเป็น NULL

21 August Data Structures 15 ADT sorted list Specification –ItemType : type ของ สมาชิกใน list –สมาชิกมีการจัดเรียงลำดับตามค่า key operations –createSortedList() –destroySortedList() –sortedIsEmpty(): boolean –sortedGetLength(): integer –sortedInsert(in newItem:itemType) –sortedRemove(in anItem:itemType) –sortedRetrieve(in index:integer, out dataItem:itemType)

21 August Data Structures 16 Sorted linked list การหาตำแหน่งที่จะ insert หรือ delete สำหรับ sorted linked list find (itemType newItem) prev = null; cur = head; while(newItem>cur.item and cur!= null) prev = cur; cur = cur.next;

21 August Data Structures 17 Circular Linked Lists node สุดท้าย ชี้ไปที่ node แรก ทุก node มี successor ไม่มี node ใดใน circular linked list มี ค่า NULL circular linked list

21 August Data Structures 18 Doubly Linked Lists แต่ละ node มี pointer ชี้ไป predecessor และ successor ของ nodeนั้น Circular doubly linked list –pre pointer ของ dummy head node ชี้ไป ที่ node สุดท้าย –next pointer ของ node สุดท้าย ชี้ไปที่ dummy head node –ไม่ต้องมี special cases สำหรับการ insert และ delete

21 August Data Structures 19 Doubly Linked Lists (a) A circular doubly linked list with a dummy head node (b) An empty list with a dummy head node

21 August Data Structures 20 Doubly Linked Lists การ delete node cur (cur->precede)->next = cur->next; (cur->next)->precede = cur->precede; การ insert new nodeไว้ก่อน node cur newPtr->next = cur; newPtr->precede = cur->precede; cur->precede = newPtr; newPtr->precede->next = newPtr;

21 August Data Structures 21 Application: DVD store Maintaining an inventory– list of movies titles Each title has the following information –title: DVD title –have_value : number of DVDs currently in stock –want_value: number of DVDs that should be in stock. If have_value < want_value, more DVDs are order.

21 August Data Structures 22 Application: Maintaining an Inventory Operations on the inventory –List the inventory in alphabetical order by title –Add new title to inventory –Modify want_value for a specified title –Sell DVDs – decrease have_value for specified title –Order more DVDs if have_value < want_value –Find the inventory item associated with title

Application : Polynomial function Polynomial linked list 21 August Data Structures 23