سورس درخت جستجوی دودویی (BST) به زبان C

binary search tree in c 7675 تصویر

سورس درخت جستجوی دودویی (BST) به زبان C

در این بخش سورس درخت جستجوی دودویی (BST) به زبان C را برای شما آماده کرده ایم که با استفاده از نرم افزار DevC++ با زبان برنامه نویسی C نوشته شده است. در ادامه می توانید توضیحات، تصاویر و همچنین فیلمی از نحوه اجرا شدن پروژه را مشاهده کنید.

توضیحات پروژه

BST یا همان Binary Search Tree یک درخت باینری با ترتیب متقارن است. منظور از ترتیب متقارن این است که هر گره شامل یک کلید است. کلید هر گره کوچکتر از کلید گره زیر درخت سمت راست و بزرگتر از کلید گره زیر درخت سمت چپ است. درخت جستجوی باینری با نام Sorted/Ordered Binary Tree نیز شناخته می شود. عملیاتی که می توان بر روی درخت جستجوی باینری انجام داد عبارت اند از:

  • Insert : افزودن یک گره جدید به درخت
  • Delete : حذف یک گره موجود از درخت
  • Search : جستجوی کلید یک گره در درخت
  • Traverse : به معنای پیماش گره های یک درخت است. یک درخت باینری را می توان در سه حالت per-order، in-order و post-order پیمایش کرد. برای درخت جستجوی باینری از پیمایش in-order استفاده می شود.

پروژه درخت جستجوی دو دویی (BST) بعد از اجرا شدن برنامه یک منوی شامل گزینه های ایجاد درخت (Create)، جستجو (Search)، پیمایش گره ها (Traverse) و خروج (Exit) به کاربر نمایش داده می شود و کاربر می تواند با استفاده از آن گزینه ها درخت جستجوی باینری را مدیریت کند.

قسمت های از سورس کد

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
typedef struct BST {
   int data;
   struct BST *lchild, *rchild;
} node;
void insert(node *, node *);
void inorder(node *);
void preorder(node *);
void postorder(node *);
node *search(node *, int, node **);
int main() {
   int choice;
   char ans = 'N';
   int key;
   node *new_node, *root, *tmp, *parent;
   node *get_node();
   root = NULL;
  // clrscr();
   printf("\nProgram For Binary Search Tree ");
   do {
      printf("\n1.Create");
      printf("\n2.Search");
      printf("\n3.Recursive Traversals");
      printf("\n4.Exit");
      printf("\nEnter your choice :");
      scanf("%d", &choice);
      switch (choice) {
      case 1:
         do {
            new_node = get_node();
            printf("\nEnter The Element ");
            scanf("%d", &new_node->data);
            if (root == NULL) /* Tree is not Created */
               root = new_node;
            else
               insert(root, new_node);
            printf("\nWant To enter More Elements?(y/n)");
            ans = getch();
         } while (ans == 'y');
         break;
      case 2:
         printf("\nEnter Element to be searched :");
         scanf("%d", &key);
 
         tmp = search(root, key, &parent);
         printf("\nParent of node %d is %d", tmp->data, parent->data);
         break;
      case 3:
         if (root == NULL)
            printf("Tree Is Not Created");
         else {
            printf("\nThe Inorder display : ");
            inorder(root);
            printf("\nThe Preorder display : ");
            preorder(root);
            printf("\nThe Postorder display : ");
            postorder(root);
         }
         break;
      }
   } while (choice != 4);
   return 0;
}

نوشته سورس درخت جستجوی دودویی (BST) به زبان C اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *