درخت جستجوی دودویی BST یا Binary Search Tree به زبان سی C
درخت جستجوی دودویی BST یا Binary search tree که گاها درخت دودویی مرتب نیز به آن می گویند، یک ساختار داده بوده و نوعی درخت دودویی می باشد.
درخت جستجوی دودویی BST، یک نوع درخت دودویی می باشد که احتمال دارد تهی باشد، در صورتیکه تهی نباشد، از خصوصیات زیر برخوردار خواهد بود:
– از چندین گره تشکیل شده که هر گره یک کلید دارد. این کلیدها مختص هستند و در درخت کلید تکراری به هیچ وجه وجود ندارد.
– همه ی کلید هایی که در زیر درخت سمت چپ قرار دارند، کوچکتر از کلید گره ریشه می باشند.
– همه ی کلید هایی که در زیر درخت سمت راست قرار دارند، بزرگتر از کلید گره ریشه هستند.
– زیر درخت سمت راست و زیر درخت سمت چپ خود درختان جستجوی دودویی می باشند.
این ویژگی تضمین می کند که پیمایش میان ترتیب یک درخت جستجوی دودویی BST، کلیدها را به ترتیب صعودی نمایش میدهد.
در این پست از وب سایت نوآوران گرمی سورس پروژه درخت جستجوی دودویی BST به زبان سی C را آماده کرده ایم که یکی از مبحث های مهم در درس ساختمان داده می باشد و هدف اصلی آن انجام عملیات جستجو در درخت دودیی به بهینه ترین روش ممکن است.
تکه کد درخت جستجوی دودویی BST به زبان سی C:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | <span style="color: #ff0000;"><strong> جهت دریافت کد کامل این برنامه از قسمت خرید محصول اقدام کنید</strong></span> # 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; } |
سلام این کد ها به صورت خط به خط توضیح داده شده . حجم این پروژرو هم می تونم بدونم ؟
سلام من همین اعلان یه پروژه خرید کردم و زیاد تو کدنویسی وارد نیستم اگه مشکلی تو کدنویسی پروژه واسم پیش بیاد می تونم از شما دوستان کمک بگیرم .
سلام یه برنامه در مورد زبان سی نوشتم فقط تو قسمت انتهایی برنامه دچار مشکل شدم می تونم در این باره ازتون کمک بگیرم ؟