پشته و صف در سی شارپ
اگر با مفاهیم ساختمان داده آشنایی هستید، قطعا با مفاهیمی تحت عنوان صف و پشته هم آشنایی کامل دارید. در این نوشته به بررسی کدهای نوشته شده در مورد صف و پشته با زبان برنامه نویسی سی شارپ میپردازیم.
پشته و صف در سی شارپ
پشته در ساختمان دادهها چیست؟
پشته یک نوع ساختمان داده است که با اصول LIFO کار میکند؛ مفهوم LIFO یعنی هر عنصری وارد میشود به عنوان اولین خروجی از همان ساختار انتخاب میشود.
صف در ساختمان دادهها چیست؟
صف نوع دیگری از ساختمان دادهها است که با ساختار FIFO کار میکند یعنی عناصر به همان ترتیب که وارد صف میشوند به همان ترتیب خارج میشوند.
کد صف در سی شارپ
قطعه کد زیر به عنوان یک قطعه کد که صف را در سی شارپ پیاده سازی میکند است:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WpfApplication1.myClass { public class queue { public int rear=0; public int front=0; public int[] arr = new int[9]; int isfull() { if (front == (rear + 1) % 9) return 1; return 0; } int isEmpty() { if (front == rear) return 1; return 0; } public int read() { if (isEmpty() != 1) { if(front == 9 && rear == 0) return 0; front++; int result = arr[front - 1]; arr[front - 1] = 0; return result; } return 0; } public void add(int a) { if (isfull() != 1) { arr[rear] = a; if (rear == 9) rear = 0; else rear++; } } } }
کد پشته در سی شارپ
قطعه کد زیر به عنوان یک قطعه کد که پشته را در سی شارپ پیاده سازی میکند است:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace stackApp { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } int[] arr = new int[99]; int tos = 99; bool isfull() { if(0 <= tos && tos < arr.Length) return true; else return false; } bool isempty() { if (99 >= tos && tos > arr.Length) return false; else return true; } void push(int tos) { if (isfull() == false) { arr[tos] = 5; tos--; } } int pops(){ if (isempty() == false) { return arr[tos]; tos++; } return 0; } } }
پیشنهاد نویسنده: پیاده سازی پشته در PHP
در صورتی که علاقه به یادگیری بیشتر ساختمان داده دارید کتاب ساختمان داده را دانلود کنید. اگر مشکلی در کدهای بالا احساس کردید در بخش نظرات همین نوشته به ما اطلاع دهید.
ارسال پاسخ