Google    Youtube      Psv     สพม.11

หน่วยที่3โครงสร้างข้อมูลสตริงและเรคคอร์ด

โครงสร้างข้อมูลสตริง

สตริงเป็นโครงสร้างข้อมูลที่เป็นการรวบรวมโครงสร้างข้อมูลคาร์แรคเตอร์ (Character) ซึ่งเป็นตัวอักษรและสัญลักษณ์ (Symbol)  ต่าง ๆ  เป็นชนิดข้อมูลที่ถูกใช้งานมากชนิดหนึ่ง  ภาษาเขียนโปรแกรมหลายภาษาจะกำหนดให้มาใช้งานได้ทันที เช่น ภาษาปาสคาล แต่บางภาษาไม่มีมาให้ เช่น ภาษาซี จะต้องสร้างขึ้นมาด้วยผู้เขียนโปรแกรม โดยนำโครงสร้างอาร์เรย์มาใช้และสมาชิกทุกตัวมีโครงสร้างข้อมูลคาร์แรคเตอร์ได้ชนิดเดียวกัน ดังรูปที่ 3.1  เป็นสตริงที่มีตัวอักษรต่อเป็นข้อความ

D a t a S t r u c t u r e s &

รูปที่  3.1   ตัวอย่างโครงสร้างข้อมูลสตริงในรูปแบบของอาร์เรย์

การกำหนดสตริง

รูปแบบการกำหนดสตริงเป็นการนำเอาอักษรพยัญชนะ  (Alphabet)   มรารวบรวม ดังนี้

S  =  ‘a1a2 . . . aN

โดยตัวอักษร  a1  เป็นสมาชิกของอักษรพยัญชนะ และ 1 ≤i≤N

เป็นการสร้างสตริงชื่อ  S  ที่มีความยาวเท่ากับ  N  ตัวอักษร และการกำหนดค่าให้แต่ละสมาชิกจะเป็นแบบเดียวกับการใช้ในอาร์เรย์   ทำให้การใช้งานไม่สะดวกเมื่อต้องใช้งานบ่อย  ๆ   จึงมีการกำหนดชุดปฏิบัติการพื้นฐาน  (Operator)  เพื่อจัดการกับสตริง  ดังนี้

ความยาวสตริง  (String  Length)  เป็นการบอกให้ทราบว่าสตริงตัวนั้นมีตัวอักษรหรือ  ความยาวเท่าไร  จะกำหนดเป็นฟังก์ชัน  Length  ที่ส่งค่าความยาวกลับมาให้  ดังนี้

N  =  Length (S) ;

หมายความว่า ค่าของ Length (S) คือค่า N

รวมสตริง  (String  Concatenation)  เป็นการนำ  2  สตริงมารวมกันเป็นสตริงเดียว  โดยนำตัวอักษรทั้งหมดของสตริงตัวหลังไปต่อท้ายสตริงตัวแรก  กำหนดเป็นฟังก์ชัน  Concate   ดังนี้

Concate (S,   S1);

โดย  S1 = ‘b1b2 . . . bN’   จะได้   S = ‘a1a2 . . . aNb1b2 . . . bN

สตริงย่อย  (Substring)  เป็นการคัดลอกตัวอักษรที่อยู่ติดกับบางส่วนของสตริงตัวที่สองให้กับสตริงตัวแรก แต่ต้องทราบว่าสตริงย่อยที่ต้องการคัดลอกมีตำแหน่งเริ่มต้นและสิ้นสุดที่ไหน  โดยกำหนดเป็นฟังก์ชัน  SubStr  ดังนี้

Substr (S , S1 , i , j);

โดย  i  ตำแหน่งเริ่มต้น  และ o < i < Lingth(S), j  เป็นจำนวนตัวอักษรคัดลอก  และ  o <length(s)  จะได้=”” s=”‘b”>i . . . bi+j-1’

นอกจากนี้ อาจมีการกำหนดการปฏิบัติการเรื่องอื่น ๆ  เพิ่มเข้ามาได้ เช่น  การหาตัวอักษรบางส่วนในสตริง   การแทรกตัวอักษรางส่วนเข้าไปในสตริง  หรอการลบตัวอักษรบางส่วนออกจากสตริง  ในภาษาซีก็มีชุดปฏิบัติการเหล่านี้มาให้ใช้แต่อาจไม่พียงพอหรือตรงตามต้องการ  จึงต้องเขียนใช้งานด้วยตนเอง

ตัวอย่างการใช้สตริง

เป็นตัวอย่างที่จะรับค่าเป็นข้อความเข้ามาจากคีย์บอร์ดและนำออกแสดงผลในรูปแบบต่าง  ๆ  โดยใช้ฟังก์ชันที่กล่าวมา  ดังตารางที่  3.1  เป็นตัวอย่างโปรแกรม  string.c   ที่จะจัดการกับข้อความ

ในภาษาซีไม่มีโครงสร้างข้อมูลสตริงมาให้จึงกำหนดเป็นอาร์เรย์ที่สมาชิกมีโครงสร้างข้อมูล  char  ซึ่งเก็บได้  80  อักษร  แต่โดยมาตรฐานโครงสร้างข้อมูลสตริงที่กำหนดในภาษาอื่น ๆ เช่น  ปาสคาลจะมี  256  ตัวอักษร  ส่วนฟังก์ชันที่เขียนขึ้นมาเป็นตัวอย่างวิธีการสร้างชุดปฏิบัติการกับโครงสร้างข้อมูลสตริง  ซึ่งในบทต่อ ๆ  ไปจะต้องมีใช้กับโครงสร้างข้อมูลชนิดต่าง ๆ เช่นกัน

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s