โครงสร้างอาร์เรย์

     โครงสร้างอาร์เรย์ เป็นแบบหนึ่งของโครงสร้างที่เรียกว่า linear list ลักษณะของอาร์เรย์ คือตารางที่เป็นช่อง ๆ แต่ละช่องต้องเก็บข้อมูลแบบเดียวกัน เป็นตัวอักษรล้วนหรือเป็นตัวเลขล้วน ขนาดของแต่ละช่องต้องเท่ากันหมด อาร์เรย์เป็นโครงสร้างที่เกือบกล่าวได้ว่าเป็นที่คุ้นเคยมากที่สุดและเข้าใจง่ายที่สุด ทั้งนี้เนื่องจากโครงสร้างของอาร์เรย์ตรงกับความเป็นจริงตามธรรมชาติของข่าวสารข้อมูลหลายประการ เช่น บัญชีการเงิน คะแนนนักเรียนในชั้น บัญชีพนักงานของบริษัท ข้อมูลที่แบ่งเป็นพวกหรือหมวดหมู่ ฯลฯ นอกจากนี้โปรแกรมที่เขียนคำนวณงานเมตริกซ์ (matrix) หรือพีชคณิตเชิงเส้น ก็ต้องใช้อาร์เรย์เป็นที่เก็บตัวเลข นอกจากนี้อาร์เรย์ยังเป็นโครงสร้างพื้นฐานของโรงสร้างที่สำคัญอื่น ๆ อีก เช่น สแตก,คิว,ต้นไม้ เป็นต้น ลักษณะของอาร์เรย์ การสร้างอาร์เรย์ขึ้นใช้นั้น เราต้องคำนึงถึงสิ่งต่อไปนี้ - ชื่อของอาร์เรย์ - ขนาดของอาร์เรย์แต่ละช่อง และมิติของอาร์เรย์ - ค่าสูงสุด (upper bound)และค่าต่ำสุด (lower bound)ในแต่ละมิติ สำหรับอาร์เรย์ 1 มิตินั้น จะมีลักษณะทั่วไปดังนี้ โครงสร้างของการแทนสแตกด้วยอาร์เรย์ การแทนสแตกด้วยโครงสร้างอาร์เรย์นั้น เนื่องจากอาร์เรย์เป็นโครงสร้างที่ต้องมีการกำหนดจองพื้นที่แน่นอน (static) จึงจำเป็นต้องมีการกำหนดขนาดพื้นที่จัดเก็บข้อมูลสูงสุดให้เหมาะสมเมื่อมีการ นำเอาข้อมูลเข้ามาก็จะนำเข้ามาจัดไว้ในอาร์เรย์แรกสุดจากนั้นจึงเรียงลำดับกัน ไปตามพื้นที่ที่กำหนด

การสร้างสแตกด้วยอะเรย์ ในการสร้างสแตกด้วยอะเรย์ หมายถึงเราเลือกการแทนที่ข้อมูลของสแตกด้วยอะเรย์ซึ่งเป็นการจัดสรรเนื้อที่หน่วยความจำแบบสแตติก นั้นคือ จะมีการกำหนดขนาดของสแตกล่วงหน้าว่าจะมีขนาดเท่าใดและจะมีการจัดสรรเนื้อที่หน่วยความจำให้เลย การสร้างสแตกนี้จะสร้างในยูนิตชื่อ StackUA ดังนี้

UNIT StackUA;

INTERFACE CONST Maxsize = 100 {User supplied};

TYPE KeyType = 1..100 {ID};

DataType = RECORD Name : string[20];

Math, Stat, Comp : integer; END;

StdElement = RECORD Key : KeyType;

{User supplied} Data : DataType;

{User supplied} END;

VAR S : ARRAY[1..Maxsize] OF StdElement;

Top : 0..Maxsize;

PROCEDURE Create;

PROCEDURE Push(E : StdElement);

PROCEDURE Pop(VAR E : StdElement);

 FUNCTION Empty : boolean;

 FUNCTION Full : boolean;

PROCEDURE Clear;

IMPLEMENTATION PROCEDURE Create;

BEGIN Top := 0; END;

PROCEDURE Push(E : StdElement);

BEGIN Top := Top + 1; S[Top] := E; END;

PROCEDURE Pop(VAR E : StdElement);

BEGIN END;

FUNCTION Empty : boolean;

BEGIN IF Top = 0 THEN Empty := true ELSE Empty := false; END; FUNCTION Full : boolean;

BEGIN IF Top = Maxsize THEN Full := true ELSE Full := false END; PROCEDURE Clear;

BEGIN Top := 0 END; END.

การสร้าง Stack ด้วย Arrays โครงสร้างข้อมูลชนิด Arrays สามารถนำไปประยุกต์ใช้สร้างเป็น Stack ได้ แต่มีข้อแตกต่างกันคือ ข้อมูลแต่ละตัวที่ถูกเก็บใน Array สามารถเข้าถึง (access) ได้โดยตรง แต่ในหลักการของ Stack สมาชิกตัวบนสุดเท่านั้นที่จะสามารถ access ได้ในแต่ละครั้ง ดังนั้นจึงต้องมีตัวแปรสำหรับบ่งชี้สมาชิกตัวบนสุดใน Stack โครงสร้างอาร์เรย์ เป็นแบบหนึ่งของโครงสร้างที่เรียกว่า linear list ลักษณะของอาร์เรย์ คือตารางที่เป็นช่อง ๆ แต่ละช่องต้องเก็บข้อมูลแบบเดียวกัน เป็นตัวอักษรล้วนหรือเป็นตัวเลขล้วน ขนาดของแต่ละช่องต้องเท่ากันหมด อาร์เรย์เป็นโครงสร้างที่เกือบกล่าวได้ว่าเป็นที่คุ้นเคยมากที่สุดและเข้าใจง่ายที่สุด ทั้งนี้เนื่องจากโครงสร้างของอาร์เรย์ตรงกับความเป็นจริงตามธรรมชาติของข่าวสารข้อมูลหลายประการ เช่น บัญชีการเงิน คะแนนนักเรียนในชั้น บัญชีพนักงานของบริษัท ข้อมูลที่แบ่งเป็นพวกหรือหมวดหมู่ ฯลฯ นอกจากนี้โปรแกรมที่เขียนคำนวณงานเมตริกซ์ (matrix) หรือพีชคณิตเชิงเส้น ก็ต้องใช้อาร์เรย์เป็นที่เก็บตัวเลข นอกจากนี้อาร์เรย์ยังเป็นโครงสร้างพื้นฐานของโรงสร้างที่สำคัญอื่น ๆ อีก เช่น สแตก,คิว,ต้นไม้ เป็นต้น ลักษณะของอาร์เรย์ การสร้างอาร์เรย์ขึ้นใช้นั้น เราต้องคำนึงถึงสิ่งต่อไปนี้ - ชื่อของอาร์เรย์ - ขนาดของอาร์เรย์แต่ละช่อง และมิติของอาร์เรย์ - ค่าสูงสุด (upper bound)และค่าต่ำสุด (lower bound)ในแต่ละมิติ สำหรับอาร์เรย์ 1 มิตินั้น จะมีลักษณะทั่วไปดังนี้ โครงสร้างของการแทนสแตกด้วยอาร์เรย์ การแทนสแตกด้วยโครงสร้างอาร์เรย์นั้น เนื่องจากอาร์เรย์เป็นโครงสร้างที่ต้องมีการกำหนดจองพื้นที่แน่นอน (static) จึงจำเป็นต้องมีการกำหนดขนาดพื้นที่จัดเก็บข้อมูลสูงสุดให้เหมาะสมเมื่อมีการ นำเอาข้อมูลเข้ามาก็จะนำเข้ามาจัดไว้ในอาร์เรย์แรกสุดจากนั้นจึงเรียงลำดับกัน ไปตามพื้นที่ที่กำหนด