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

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

int isEmpty ( node **ptr_head) ;

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


งานนำเสนอเรื่อง: "int isEmpty ( node **ptr_head) ;"— ใบสำเนางานนำเสนอ:

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

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

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

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

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

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

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

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

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

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

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

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


ดาวน์โหลด ppt int isEmpty ( node **ptr_head) ;

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


Ads by Google