سیداحمد
سیداحمد
خواندن ۳ دقیقه·۵ ماه پیش

معرفی و آموزش هفت ساختار داده کلیدی در برنامه‌نویسی

ساختارهای داده یکی از بخش‌های اساسی در علوم کامپیوتر هستند که برای سازمان‌دهی و مدیریت داده‌ها مورد استفاده قرار می‌گیرند. این مقاله به معرفی هفت ساختار داده مهم شامل آرایه‌ها، لیست‌های پیوندی، هَش‌ مَپ‌ ها، پشته‌ها، صف‌ها، درخت‌ها و گراف‌ها می‌پردازد. همچنین در این مقاله برخی از مفاهیم با استفاده از مثال‌های تایپ‌ اسکریپت توضیح داده می‌شوند.




1. آرایه‌ها (Arrays)

تعریف: آرایه‌ها مجموعه‌ای از عناصر هستند که به ترتیب در حافظه قرار می‌گیرند و هر عنصر از طریق یک اندیس دسترسی‌پذیر است.

مثال در تایپ‌اسکریپت:

const numbers: number[] = [10, 20, 30, 40]; console.log(numbers[1]); // خروجی: 20 numbers.push(50); // افزودن عنصر console.log(numbers); // خروجی: [10, 20, 30, 40, 50]

کاربرد:

ذخیره داده‌های متوالی

دسترسی سریع به عناصر با اندیس

---

2. لیست‌های پیوندی (Linked Lists)

تعریف: لیست‌های پیوندی مجموعه‌ای از گره‌ها هستند که هر گره شامل داده و اشاره‌گر به گره بعدی است.

ساختار در تایپ‌اسکریپت:

class Node { value: number; next: Node | null = null; constructor(value: number) { this.value = value; } } class LinkedList { head: Node | null = null; add(value: number): void { const newNode = new Node(value); if (!this.head) { this.head = newNode; } else { let current = this.head; while (current.next) { current = current.next; } current.next = newNode; } } print(): void { let current = this.head; while (current) { console.log(current.value); current = current.next; } } } const list = new LinkedList();list.add(10); list.add(20); list.add(30); list.print(); // خروجی: 10, 20, 30

کاربرد:

درج و حذف سریع

ذخیره داده‌های پویا

---

3. هش‌مپ‌ها (Hash Maps)

تعریف: هش‌مپ‌ها ساختارهایی برای ذخیره و دسترسی سریع به داده‌ها با استفاده از کلید هستند.

مثال در تایپ‌اسکریپت:

const hashMap: { [key: string]: number } = {}; hashMap[&quota&quot] = 1; hashMap[&quotb&quot] = 2; console.log(hashMap[&quota&quot]); // خروجی: 1 delete hashMap[&quotb&quot]; console.log(hashMap); // خروجی: { &quota&quot: 1 }


کاربرد:

ذخیره داده‌های کلید-مقدار

جستجوی سریع




4. پشته‌ها (Stacks)

تعریف: پشته‌ها از اصل آخرین ورودی، اولین خروجی (LIFO) پیروی می‌کنند.

مثال در تایپ‌اسکریپت:

class Stack<T> { private items: T[] = []; push(item: T): void { this.items.push(item); } pop(): T | undefined { return this.items.pop(); } peek(): T | undefined { return this.items[this.items.length - 1]; } } const stack = new Stack<number>(); stack.push(10); stack.push(20); console.log(stack.peek()); // خروجی: 20 console.log(stack.pop()); // خروجی: 20 console.log(stack.pop()); // خروجی: 10

کاربرد:

بازگشت از توابع

مدیریت حافظه

---

5. صف‌ها (Queues)

تعریف: صف‌ها از اصل اولین ورودی، اولین خروجی (FIFO) پیروی می‌کنند.

مثال در تایپ‌اسکریپت:

class Queue<T> { private items: T[] = []; enqueue(item: T): void { this.items.push(item); } dequeue(): T | undefined { return this.items.shift(); } front(): T | undefined { return this.items[0]; } } const queue = new Queue<number>(); queue.enqueue(10); queue.enqueue(20); console.log(queue.front()); // خروجی: 10 console.log(queue.dequeue()); // خروجی: 10 console.log(queue.dequeue()); // خروجی: 20

کاربرد:

صف‌های پردازش

مدیریت منابع

---

6. درخت‌ها (Trees)

تعریف: درخت‌ها ساختارهای سلسله‌مراتبی هستند که از گره‌هایی تشکیل شده‌اند.

ساختار ساده در تایپ‌اسکریپت:

class TreeNode { value: number; left: TreeNode | null = null; right: TreeNode | null = null; constructor(value: number) { this.value = value; } } const root = new TreeNode(10); root.left = new TreeNode(5); root.right = new TreeNode(15); console.log(root); // ساختار درختی

کاربرد:

جستجوهای سریع

مدیریت سلسله مراتب داده‌ها

---

7. گراف‌ها (Graphs)

تعریف: گراف‌ها مجموعه‌ای از گره‌ها (راس‌ها) هستند که از طریق لبه‌ها به هم متصل می‌شوند.

ساختار پایه در تایپ‌اسکریپت:

class Graph { adjacencyList: { [key: string]: string[] } = {}; addVertex(vertex: string): void { if (!this.adjacencyList[vertex]) { this.adjacencyList[vertex] = []; } } addEdge(vertex1: string, vertex2: string): void { this.adjacencyList[vertex1].push(vertex2); this.adjacencyList[vertex2].push(vertex1); } showGraph(): void { console.log(this.adjacencyList); } } const graph = new Graph(); graph.addVertex(&quotA&quot); graph.addVertex(&quotB&quot); graph.addEdge(&quotA&quot, &quotB&quot); graph.showGraph(); // خروجی: { A: [&quotB&quot], B: [&quotA&quot] }

کاربرد:

مسیریابی

مدل‌سازی شبکه‌ها



ساختارهای داده مانند ابزارهایی هستند که در پروژه‌های نرم‌افزاری استفاده می‌کنید. با درک کاربردها و پیاده‌سازی هر ساختار داده، می‌توانید کدنویسی بهینه‌تری داشته باشید. تمرین این ساختارها با استفاده از زبان‌هایی مانند تایپ‌اسکریپت، درک عمیق‌تری از آن‌ها فراهم می‌کند.



علوم کامپیوترتایپ اسکریپتالگوریتمساختمان داده
ارشد نرم‌افزار و توسعه‌دهنده React و Next.js🚀 | طراحی سایت‌های مدرن و کاربرپسند | ارتباط با من zil.ink/seyedahmaddev
در این انتشارات آموزش های تایپ اسکریپت منتشر میشود
شاید از این پست‌ها خوشتان بیاید