การเขียนโปรแกรม stdio.h#include void main(){c
การเขียนโปรแกรม stdio.h#include void main(){char name [10];int age [5];float high;float weight;int Tel[11];printf("my rueme\n\n");printf("name:");scanf("%s",&name);printf("age:");scanf("%d",&age);printf("high:");scanf("%f",&high);printf("weight:");scanf("%f",&weight);printf("Tel:");scanf(%d",&Tel);}การเขียนโปรแกรม iostream.h#includevoid main(){char name [10];int age[5];float high;float weight;int Tel[11];
การเขียนโปรแกรม stdio.h#include void main(){char name [10]
สแตค (Stack)
สแตคเป็นโครงสร้างข้อมูลที่มีลักษณะแบบลำดับ (sequential) คือ การกระทำกับข้อมูลจะกระทำที่ปลายข้างเดียวกันที่ส่วนปลายสุดของสแตค
ข้อมูลของสแตคประกอบไปด้วย
การนำเข้าข้อมูลเข้า (PUSH) ที่ส่วนบนสุดของสแตค
การนำข้อมูลออก (POP) ที่ส่วนบนสุดของสแตคเช่นกัน
การจะ Push ข้อมูลเข้าก็ต้องตรวจสอบด้วยว่าข้อมูลในสแตคเต็มหรือไม่ หากสแตคเต็มก็จะไม่สามารถ Push หรือนำข้อมูลเข้าได้ เช่นเดียวกับการ Pop ข้อมูลออกก็ต้องตรวจสอบด้วยว่ามีข้อมูลอยู่ในสแตคหรือไม่ หากไม่มีข้อมูลอยู่ในสแตคหรือสแตคว่าง (empty stack) ก็ไม่สามารถ pop ได้การนำข้อมูลเข้า-ออก จากสแตค (push , pop) จะมีลักษณะแบบเข้าหลัง ออกก่อน (LIFO : Last In , First Out) คือ ข้อมูลที่เข้าไปในสแตคลำดับหลังสุด จะถูกนำข้อมูลออกจากสแตคเป็นลำดับแรก
การใช้สแตกในชีวิตประจำวัน
การใช้ดินสอกด
-เราต้องนำไส้ดินสอสอดเข้าไปก่อนเวลาเราใช้เราก็กดดังนั้นจึงเป็นการเข้าก่อนออกทีหลังการเล่นเกมส์กดห่วง -การเล่นเกมส์กดของห่วงเราต้องโยนห่วงอันแรกเข้าไปแล้วก็ตามจนหมดห่วงของเกมส์เมื่อเราจะเริ่มเล่นเกมส์ใหม่เราก็เอาอันที่หลังออกก่อนห่วงอันแรกจึงออกทีหลัง
Linked List
Linked Listเป็นการจัดเก็บชุดข้อมูลมีพอยเตอร์เป็นตัวเชื่อมโยงต่อเนื่องกันไปตามลำดับซึ่งในลิงค์ลิสต์จะประกอบไปด้วยข้อมูลที่เรียกว่าโหนด (Node)
ในหนึ่งโหนดจะประกอบด้วย
1.ส่วนของข้อมูลที่ต้องการจัดเก็บ เรียกว่าส่วน (Data)
2.ส่วนที่เป็นพอยน์เตอร์ที่ชี้ไปยังโหนดถัดไป (Link) หรือชี้ไปยังโหนดอื่นๆที่อยู่ในลิสต์**หากโหนดแรกไม่มีข้อมูลหรือไม่มีข้อมูลในโหนดที่อยู่ถัดไป ส่วนที่เป็นพอยน์เตอร์หรือ Link จะเก็บค่า NULL เขียนแทนด้วยเครื่องหมาย กากบาท
โครงสร้างข้อมูลแบบลิงค์ลิสต์ประกอบด้วย 2 ส่วน
1.Head Structure แบ่งเป็น 3ส่วน-count เป็นการนับจำนวนข้อมูลที่มีอยู่ในลิสต์นั้น-pos พอยเตอร์ที่ชี้ไปยังโหนดที่เข้าถึง-head พอยเตอร์ที่ชี้ไปยังโหนดแรกของลิสต์
2.Data Node Structure จะประกอบด้วย ข้อมูลและพอยเตอร์ที่ชี้ไปโหนดถัดไปการเพิ่มข้อมูลลงไปในลิงค์ลิสต์นั้น จากที่ Head Structure ในส่วนของ count จะมีค่าเป็น 0 นั้นหมายถึงในลิสต์นั้นยังไม่มีข้อมูลใดเลย ส่วน head จะมีเครื่องหมายกากบาท นั้นหมายถึงในลิสต์นั้นไม่มีการเชื่อมโยงไปยังข้อมูลแรก แต่ถ้าต้องการเพิ่มข้อมูลลงไปในลิสต์ Data Node ในส่วนของข้อมูล (Data)จะมีค่าเก็บอยู่ แล้ว count ก็จะเปลี่ยนค่าจาก 0 เป็น 1 คือ การบ่งบอกถึงจำนวนข้อมูลที่มีอยู่ในลิสต์นั้น แล้ว head ก็จะชี้ไปยังข้อมูล (Data) ตัวแรกของลิสต์ ส่วนพอยเตอร์ที่ชี้ไปโหนดถัดไปจะเป็นเครื่องหมายกากบาทแทนการลบข้อมูลในลิงค์ลิสต์ ถ้าต้องการลบข้อมูลตัวใดในลิสต์สามารถลบได้เลย แต่ต้องเปลี่ยน head เพื่อชี้ไปยังข้อมูลตัวแรกของลิสต์กรณีที่ลบข้อมูลตัวแรกออก แล้ว link คือ เมื่อลบข้อมูลตัวใดออกควรชี้ link ถัดไปให้ถูกต้องด้วย
สรุปเนื้อหาบทเรียน "Data Structure"
สรุปบทเรียน Pointer , Set and String
Pointer
pointer คือตัวแปรที่จะทำหน้าที่ชี้ที่อยู่ในหน่วยความจำ (Address) ของตัวแปรอื่นๆ เราสามารถใช้ ตัวแปร Pointer เพื่อการเข้าถึงข้อมูลที่รวดเร็ว
การประกาศตัวแปร Pointertype *variable-name;type คือชนิดของตัวแปรที่จะประกาศเช่น int,float,char* คือเครื่องหมายที่แสดงให้รู้ว่าตัวแปรหลังดอกจันคือตัวแปร Pointervariable-name คือชื่อตัวแปรที่จะสร้างขึ้น ทั้งนี้จะต้องไม่เป็นคำสงวนของภาษาซี
ข้อสังเกตุเกี่ยวกับตัวแปร Pointer (ประเภท int)- การใช้งานตัวแปร pointer มีได้ 2 แบบดังนี้
*pt_age จะหมายถึงการนำค่าของ pt_age ออกมาแสดง
pt_age จะหมายถึงการนำตำแหน่งหน่วยความจำของ pt_age มาแสดง
โครงสร้างข้อมูลแบบ String
string หมายถึงอักขระที่มีความยาวมากกว่า 1 ตัวแรงต่อกันเป็นข้อความ โดยข้อมูลชนิดขด้อความต้องเขียนอยู่ภายในเครื่องหมาย " " (Double quote)
หรือพูดง่าย ๆ ก็คือ String เป็น Array ของ อักขระนั่นเอง ตัวอย่างเช่น
char name[20];
หมายถึง string ที่เก็บข้อความได้ 19 ตัวอักษร ตามปกติแล้วจุดสิ้นสุดของ string จะเป็น \0
มีฟังก์ชั่นที่เกี่ยวข้องกับ String ดังนี้
getchar(); // ใช้สำหรับรับข้อมูลชนิดอักขระเข้ามาจากคีย์บอร์ด โดยรับครั้งละ 1 อักขระเท่านั้น
gets(); // จะใช้รับข้อมูลชนิดข้อความเข้ามาทางคีย์บอร์ด
putchar(); // คือการแสดงผลอักขระออกทางหน้าจอ
puts(); // ใช้ในการแสดงข้อความออกจากหน้าจอ
โครงสร้างข้อมูลแบบเซต (set)
เป็นโครงสร้างที่ข้อมูลแต่ละตัวไม่มีความสัมพันธ์กันเลย