int isEmpty ( node **ptr_head) ;

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Lists Data Structure LAUKHWAN NGAMPRASIT LAUKHWAN NGAMPRASIT.
Advertisements

โครงสร้างของโหนด Successor = Node ที่อยู่ถัดไปจาก Node ที่ใช้งานอยู่
บทที่ 6 โครงสร้างข้อมูลลิ้งค์ลิสต์
[][Data][] [][1][]<->[][5][]<->[][3][]<->[][8][null]
เฉลย Lab 10 Loop.
1. จงหาผลลัพธ์จากโปรแกรมต่อไปนี้
Linked-List (รายการโยง)
List ADTs By Pantharee S..
บทที่ 5 Link List Link List.
Linked List List is group of nodes that consists of data and link.
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
โครงสร้างข้อมูลแบบรายการโยง (Link List)
รายการโยง (linked lists) หอยทอด 30 ข้าวผัด 30 ไก่ย่าง 50 เนื้อทอด 30
โครงสร้างข้อมูลแบบลิงก์ลิสต์
Int isEmpty ( node **ptr_head) ; parameter ชื่อของตัวแปรลิสต์ที่จะตรวจสอบว่า ว่างหรือไม่ return value มีได้ 2 สถานะ คือ ว่าง (1) หรือ ไม่ ว่าง (0) body.
รายการ (Lis t) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการสื่อสาร Website : ict.up.ac.th/yeunyong.
บทที่ 5 การควบคุมทิศทางการทำงานของโปรแกรม
JSP ติดต่อฐานข้อมูล.
หลักการโปรแกรม 1 Lecture 14: โปรแกรมย่อย ( การส่งพารามิเตอร์ แบบ pass by reference)
โครงสร้างข้อมูลและอัลกอริทึม (Data Structure and Algorithm)
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
DATA STRUCTURE AND ALGORITHM Linked List.
Linked List (2) Sanchai Yeewiyom School of Information & Communication Technology University of Phayao.
หลักการโปรแกรม 1 Lecture 8: การทำซ้ำ (while, do-while)
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
Chapter 10 Data Files.
การหาร ระดับ 1 อ. กิตติเชษฐ์ สวัสดิ์ธนาสกุล
เกม คณิตคิดเร็ว.
บทที่ 5 การใช้คำสั่ง Select Case , For Next และ Do While
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List.
โปรแกรมย่อย อาจารย์สมเกียรติ ช่อเหมือน
Queue [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List.
โครงสร้างข้อมูลและอัลกอริทึมเบื้องต้น
List, Stack, Queue 2018/11/28 อ.ดร.วิษณุ โคตรจรัส.
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
หน่วยการเรียนที่ 4 เรื่อง การควบคุมทิศทางการทำงาน
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
Linked List Lecturer : Kritawan Siriboon, Room no. 913
Control Statement เงื่อนไขคำสั่งในโปรแกรม ภาษา C
Queue [2] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
Method and Encapsulation
Linked List (ต่อ) Lecturer : Kritawan Siriboon, Room no. 913
ต้นไม้เอวีแอล (AVL Tree)
บทที่ 9 การทำซ้ำ (Loop).
State Table ตารางสถานะ ปรับปรุง 18 เมษายน 2562
การประยุกต์ใช้เทคโนโลยีทาง DNA ในเชิง นิติวิทยาศาสตร์
การจัดทำแผนที่ ศูนย์เทคโนโลยีสารสนเทศและการสื่อสาร.
คำสั่งวนรอบ (Loop).
Data Structures and Algorithms 2/2561
หน่วยที่ 6 อะเรย์ของอักขระ
Data Structures and Algorithms 2/2561
บทที่ 7 การประมวลผลอาร์เรย์
3 โครงสร้างข้อมูลแบบคิว (QUEUE).
Chapter 3 : Array.
Array: One Dimension Programming I 9.
4 โครงสร้างข้อมูลแบบลิงค์ลิสต์ (LINKED LIST).
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
Decision: Single and Double Selection (if and if-else statement)
การวิเคราะห์สถานะคงตัวของ วงจรที่ใช้คลื่นรูปไซน์
ใบสำเนางานนำเสนอ:

int isEmpty ( node **ptr_head) ; parameter ชื่อของตัวแปรลิสต์ที่จะตรวจสอบว่าว่างหรือไม่ return value มีได้ 2 สถานะ คือ ว่าง (1) หรือ ไม่ว่าง (0) body of function ตรวจสอบว่าลิสต์ว่างหรือไม่ (*ptr_head == NULL) ถ้าใช่ return 1 , ถ้าไม่ใช่ return 0

isEmpty : ทุกกรณีเขียนเหมือนกัน int isEmpty ( node **ptr_head ) { if ( *ptr_head == NULL ) { // ถ้าลิสต์ว่าง return 1 ; else return 0 ; }

int countNode ( node ** ptr_head ) ; parameter ชื่อของตัวแปรลิสต์ที่จะนับจำนวนโหนด return value จำนวนโหนดในลิงค์ลิสต์ body of function นับจำนวนโหนดในลิงค์ลิสต์ ต้องอาศัยการ “ท่อง” ไปในลิงค์ลิสต์ทีละโหนดและนับจำนวน

countNode : Singly-linked list int countNode ( node **ptr_head ) { int count = 0 ; node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง(มีข้อมูล) t = *ptr_head ; count = 1 ; // นับไป 1 โหนด while ( t->next != NULL ) { // ถ้ายังไม่ใช่โหนดสุดท้าย t = t->next ; // ท่องไปโหนดถัดไป count++ ; // นับเพิ่มอีก 1 โหนด } return count ;

countNode : Singly-circularly-linked list int countNode ( node **ptr_head ) { int count = 0 ; node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง(มีข้อมูล) t = *ptr_head ; count = 1 ; // นับไป 1 โหนด while ( t->next != *ptr_head ) { //ถ้ายังไม่ใช่โหนดสุดท้าย t = t->next ; // ท่องไปโหนดถัดไป count++ ; // นับเพิ่มอีก 1 โหนด } return count ;

countNode : Doubly-linked list int countNode ( node **ptr_head ) { int count = 0 ; node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง(มีข้อมูล) t = *ptr_head ; count = 1 ; // นับไป 1 โหนด while ( t->next != NULL ) { // ถ้ายังไม่ใช่โหนดสุดท้าย t = t->next ; // ท่องไปโหนดถัดไป count++ ; // นับเพิ่มอีก 1 โหนด } return count ;

countNode : Doubly-circularly-linked list int countNode ( node **ptr_head ) { int count = 0 ; node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง(มีข้อมูล) t = *ptr_head ; count = 1 ; // นับไป 1 โหนด while ( t->next != *ptr_head ) { //ถ้ายังไม่ใช่โหนดสุดท้าย t = t->next ; // ท่องไปโหนดถัดไป count++ ; // นับเพิ่มอีก 1 โหนด } return count ;

int findTarget (node **ptr_head, int target); parameter ชื่อของตัวแปรลิสต์ที่จะค้นหาข้อมูล ข้อมูลที่ต้องการค้นหา return value มีได้ 2 สถานะ คือ พบ (1) หรือ ไม่พบ (0) body of function ค้นหาข้อมูลที่ต้องการไปทีละโหนดในลิงค์ลิสต์ ต้องอาศัยการ “ท่อง” ไปในลิงค์ลิสต์ ถ้าพบ return 1 , ถ้าไม่พบ return 0

findTarget : Singly-linked list int findTarget ( node **ptr_head , int target ) { int found = 0 ; // กำหนดตัวแปร “พบ” มีค่าเริ่มต้นเป็น 0 (ไม่พบ) node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง(มีข้อมูล) t = *ptr_head ; // ถ้า “ยังไม่ใช่โหนดสุดท้าย” และ “ยังไม่พบข้อมูล” while ( ( t->next != NULL ) && ( t->data != target ) ) t = t->next ; // ท่องไปโหนดถัดไป // การออกจาก while loop เป็นได้ 2 กรณี // คือ “ถึงโหนดสุดท้าย” หรือ “พบโหนดที่มีข้อมูล” // ต้องตรวจสอบเพื่อเปลี่ยนตัวแปร found ในกรณีที่พบข้อมูล if ( t->data == target ) found = 1 ; } return found ;

findTarget : Singly-circularly-linked list int findTarget ( node **ptr_head , int target ) { int found = 0 ; // กำหนดตัวแปร “พบ” มีค่าเริ่มต้นเป็น 0 (ไม่พบ) node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง(มีข้อมูล) t = *ptr_head ; // ถ้า “ยังไม่ใช่โหนดสุดท้าย” และ “ยังไม่พบข้อมูล” while (( t->next != *ptr_head ) && ( t->data != target )) t = t->next ; // ท่องไปโหนดถัดไป // การออกจาก while loop เป็นได้ 2 กรณี // คือ “ถึงโหนดสุดท้าย” หรือ “พบโหนดที่มีข้อมูล” // ต้องตรวจสอบเพื่อเปลี่ยนตัวแปร found ในกรณีที่พบข้อมูล if ( t->data == target ) found = 1 ; } return found ;

findTarget : Doubly-linked list int findTarget ( node **ptr_head , int target ) { int found = 0 ; // กำหนดตัวแปร “พบ” มีค่าเริ่มต้นเป็น 0 (ไม่พบ) node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง(มีข้อมูล) t = *ptr_head ; // ถ้า “ยังไม่ใช่โหนดสุดท้าย” และ “ยังไม่พบข้อมูล” while ( ( t->next != NULL ) && ( t->data != target ) ) t = t->next ; // ท่องไปโหนดถัดไป // การออกจาก while loop เป็นได้ 2 กรณี // คือ “ถึงโหนดสุดท้าย” หรือ “พบโหนดที่มีข้อมูล” // ต้องตรวจสอบเพื่อเปลี่ยนตัวแปร found ในกรณีที่พบข้อมูล if ( t->data == target ) found = 1 ; } return found ;

findTarget : Doubly-circularly-linked list int findTarget ( node **ptr_head , int target ) { int found = 0 ; // กำหนดตัวแปร “พบ” มีค่าเริ่มต้นเป็น 0 (ไม่พบ) node *t ; if ( *ptr_head != NULL ) { // ถ้าลิสต์ไม่ว่าง(มีข้อมูล) t = *ptr_head ; // ถ้า “ยังไม่ใช่โหนดสุดท้าย” และ “ยังไม่พบข้อมูล” while (( t->next != *ptr_head ) && ( t->data != target )) t = t->next ; // ท่องไปโหนดถัดไป // การออกจาก while loop เป็นได้ 2 กรณี // คือ “ถึงโหนดสุดท้าย” หรือ “พบโหนดที่มีข้อมูล” // ต้องตรวจสอบเพื่อเปลี่ยนตัวแปร found ในกรณีที่พบข้อมูล if ( t->data == target ) found = 1 ; } return found ;