<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>پست‌های انتشارات آموزش تایپ اسکریپت</title>
        <link>https://virgool.io/typescriptlearn/feed</link>
        <description>در این انتشارات آموزش های تایپ اسکریپت منتشر میشود</description>
        <language>fa</language>
        <pubDate>2026-04-15 04:40:34</pubDate>
        <image>
            <url>https://files.virgool.io/upload/publication/iyuhjxvrghhh/pncjfi.png</url>
            <title>آموزش تایپ اسکریپت</title>
            <link>https://virgool.io/typescriptlearn</link>
        </image>

                    <item>
                <title>معرفی و آموزش هفت ساختار داده کلیدی در برنامه‌نویسی</title>
                <link>https://virgool.io/typescriptlearn/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D9%88-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%87%D9%81%D8%AA-%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1-%D8%AF%D8%A7%D8%AF%D9%87-%DA%A9%D9%84%DB%8C%D8%AF%DB%8C-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-zbvoew5ojhla</link>
                <description>ساختارهای داده یکی از بخش‌های اساسی در علوم کامپیوتر هستند که برای سازمان‌دهی و مدیریت داده‌ها مورد استفاده قرار می‌گیرند. این مقاله به معرفی هفت ساختار داده مهم شامل آرایه‌ها، لیست‌های پیوندی، هَش‌ مَپ‌ ها، پشته‌ها، صف‌ها، درخت‌ها و گراف‌ها می‌پردازد. همچنین در این مقاله برخی از مفاهیم با استفاده از مثال‌های تایپ‌ اسکریپت توضیح داده می‌شوند.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[&amp;quota&amp;quot] = 1;
hashMap[&amp;quotb&amp;quot] = 2;

console.log(hashMap[&amp;quota&amp;quot]); // خروجی: 1
delete hashMap[&amp;quotb&amp;quot];
console.log(hashMap); // خروجی: { &amp;quota&amp;quot: 1 }کاربرد:ذخیره داده‌های کلید-مقدارجستجوی سریع4. پشته‌ها (Stacks)تعریف: پشته‌ها از اصل آخرین ورودی، اولین خروجی (LIFO) پیروی می‌کنند.مثال در تایپ‌اسکریپت:class Stack&lt;T&gt; {
  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&lt;number&gt;();
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&lt;T&gt; {
  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&lt;number&gt;();
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(&amp;quotA&amp;quot);
graph.addVertex(&amp;quotB&amp;quot);
graph.addEdge(&amp;quotA&amp;quot, &amp;quotB&amp;quot);
graph.showGraph(); // خروجی: { A: [&amp;quotB&amp;quot], B: [&amp;quotA&amp;quot] }کاربرد:مسیریابیمدل‌سازی شبکه‌هاساختارهای داده مانند ابزارهایی هستند که در پروژه‌های نرم‌افزاری استفاده می‌کنید. با درک کاربردها و پیاده‌سازی هر ساختار داده، می‌توانید کدنویسی بهینه‌تری داشته باشید. تمرین این ساختارها با استفاده از زبان‌هایی مانند تایپ‌اسکریپت، درک عمیق‌تری از آن‌ها فراهم می‌کند.</description>
                <category>آموزش تایپ اسکریپت</category>
                <author>سید احمد</author>
                <pubDate>Sat, 11 Jan 2025 15:23:24 +0330</pubDate>
            </item>
            </channel>
</rss>