السلام عليكم سؤال ما هي data structure وماذا يمكنها فعلة ؟
مع مثال
وشكراً
Data structure أو هياكل البيانات هو مصطلح يشير إلى طريقة تنظيم وتنسيق وإدارة وتخزين البيانات التي تتيح الوصول والتعديل عليها داخل برنامج معين ، بحيث يتم تخزينها وتنظيمها بشكل مناسب وفعال لتحقيق أهداف محددة وتعتبر من أحد العناصر الأساسية في مجالات علوم الحاسوب وتطوير البرمجيات
تضم هياكل البيانات مجموعة واسعة من التقنيات والأساليب منها :-
ويتم استخدام هياكل البينات في البرمجة لتنظيم وتخزين البيانات بشكل فعال وبالتالي تحسين أداء البرامج وزيادة كفائتها .
يمكنك الإطلاع على هذه المقالات :-
عليكم السلام،
"هياكل البيانات" أو "Data Structures" تعني ببساطة طريقة تنظيم وتخزين البيانات في الحاسوب بحيث تكون متاحة للاستخدام والإدارة. تُستخدم هذه الهياكل لتحسين أداء البرامج، وتوفير الوقت والموارد، وتحليل البيانات بطريقة فعالة.
سأذكر بعض الأنواع الشهيرة وأمثلة باستخدام جافاسكريبت.
let arr = [1, 2, 3, 4, 5]; console.log(arr[0]); // يطبع الرقم 1
class Node { constructor(value) { this.value = value; this.next = null; } } class LinkedList { constructor() { this.head = null; this.tail = null; } addToTail(value) { const node = new Node(value); if (!this.head) { this.head = node; } else { this.tail.next = node; } this.tail = node; } } const list = new LinkedList(); list.addToTail(1); list.addToTail(2); list.addToTail(3); console.log(list.head.value); // يطبع الرقم 1
let person = {name: "Ahmed", age: 30, job: "developer"}; console.log(person.age); // يطبع الرقم 30
في بداية تعلمك للبرمجة قم بتعلم الهياكل الأساسية مثل المصفوفات Arrays والكائن Object.
ولكن من المفيد أن تكون على دراية بها وتعرف كيفية استخدام بعضها. بشكل عام، من الأفضل أن تركز على تعلم أساسيات البرمجة مثل المتغيرات والشروط والحلقات والدوال وما إلى ذلك، ثم تتعمق في تعلم هياكل البيانات عندما تصبح أكثر خبرة أو بحاجة إليها بسبب عملك على مشاريع كبيرة وبيانات ضخمة.
ومن الهياكل البيانات الأساسية التي يجب على المبتدئين في البرمجة تعلمها:
يمكن استخدام كل هذه الهياكل في جافاسكريبت، ويمكن البدء بتعلمها بعد اكتساب بعض الخبرة في أساسيات البرمجة.
ستحتاج إلى الإطلاع على المصادر التالية.
تم شرح بنية البيانات بشكل مفصل في التعليقات السابقة وسأقوم بتوضيح الأهمية مع أمثلة من خلال التالي
في علوم الكمبيوتر ، أهمية بنية البيانات موجودة في كل مكان. توفر بنية البيانات عناصر أساسية لحل المشكلات. يمكن فهم أهميتها من خلال ما يلي:
لذلك تعلم واستخدام بنية البيانات المناسبة توفر سرعة واستخدام أقل للموارد
تعدّ هياكل البيانات (Data Structures) أساسيةً في عالم البرمجة، فهي تساعد على التغيير من أداء وسلوك التطبيقات المختلفة. لذا، نحتاج إلى تعلمها كمبرمجين، سواء كنا نعمل في تطوير تطبيقات ويب أو موبايل، أو حتى العاب الفيديو.
1- تحسين أداء التطبيق
إذا كان عدد البيانات يزيد، يصبح من المهم استخدام الهياكل البيانية الصحيحة والفعالة. فكل هيكل يعمل بشكل مختلف، ويتيح لنا إظهار وتنظيم بياناتنا بشكل مختلف، كما أنّ كلٌ منها يأخذ وقتًا معينًا لتنفيذه، لذا يجب أختيار الهيكل المناسب والفعال لأداء عمل المطلوب.
مثلًا، قد يستغرق البحث عن بيانات معينة في بعض الحالات للوصول إلى قيمة محددة، ساعات بسبب بنية البيانات المستخدمة. ولكن باستخدام الهياكل البيانية المناسبة، يمكن تقليل الوقت اللازم للبحث عن تلك البيانات.
2- تحسين جودة الشفرة وتوفير الوقت
بفهم أفضل لهياكل البيانات، يتمكن المبرمجون من كتابة أكواد أفضل و تنظيم الأكواد وتوزيعها بشكل أفضل، وهذا يعني تحقيق جودة الشفرة البرمجية، وكذلك أيضًا توفير الوقت اللازم للبرمجة.
3- استخدام كود معدل
يجب علينا تعلم هياكل البيانات، لكي نتمكن من قراءة وفهم وتعديل الشفرة المصدرية للهياكل البيانية الأخري، كي يسهل علينا فهم وتعديل الأكواد.
بعد هذا الشرح، سوف أقوم بتوضيح أمثلة واقعية على كيفية كتابة بعض الهياكل البيانية الرئيسية في لغة الجافاسكريبت:
1- المصفوفات / Arrays
تعتبر المصفوفات من أساسيات هياكل البيانات، إذ تسمح لنا بتخزين العديد من العناصر في مكان واحد. فيما يلي مثال بسيط على انشاء المصفوفات في جافاسكريبت:
var myArray = [10,20,30,40];
2- اﻟﻘواﺌم اﻟﻤﺘراﺒطﺔ / Linked Lists
في القوائم المرتبة (Linked List)، يتم ربط عدة عناصر (العقد) ببعضها البعض، وتحويلها إلى مجموعة. يمكن استخدام القوائم المرتبة في حلول بسيطة مثل البحث في النصوص. وإليك المثال:
class Node { constructor(data) { this.data = data; this.next = null; } } class LinkedList { constructor() { this.head = null; this.size = 0; } add(data) { let node = new Node(data); let current; if (this.head == null) this.head = node; else { current = this.head; while (current.next) { current = current.next; } current.next = node; } this.size++; } }
3- Stacks
في (Stacks)، فإن العمليات الأولى المضافة تكون أخر العمليات التي تم وضعها. وتستخدم Stacks غالبًا في العديد من البرامج، لعمليات مثل التراجع أو إعادة إرسال البيانات. يمكن استخدام Stacks ببساطة في جافاسكريبت كما يلي:
class Stack { constructor() { this.elements = []; } add(element){ this.elements.push(element); } remove(){ this.elements.pop(); } peek(){ return this.elements[this.elements.length - 1]; } }
التعليقات