日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

二叉树的基本操作之二叉排序树

發布時間:2024/10/12 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二叉树的基本操作之二叉排序树 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//二叉樹的基本操作之—建立二叉排序樹并遍歷 #include<stdio.h> #include<string.h> struct Node{Node *lchild;Node *rchild;int c; }Tree[110];//靜態數組 int loc;// 靜態數組中被使用的元素個數 Node *create(){//申請未使用的結點 Tree[loc].lchild=Tree[loc].rchild=NULL;return &Tree[loc+1]; } void postOrder(Node *T){//后序遍歷if(T->lchild!=NULL)postOrder(T->lchild);if(T->rchild!=NULL)postOrder(T->rchild);printf("%d ",T->c); } void inOrder(Node *T){//中序遍歷if(T->lchild!=NULL)inOrder(T->lchild);printf("%d ",T->c); if(T->rchild!=NULL)inOrder(T->rchild); } void preOrder(Node *T){//前序遍歷printf("%d ",T->c); if(T->lchild!=NULL)preOrder(T->lchild);if(T->rchild!=NULL)preOrder(T->rchild); } Node *Insert(Node *T,int x){//將數字x 插入到排序樹中 if(T==NULL){//當前樹為空T=create();T->c=x;return T; }else if(x<T->c){//若x小于根結點數值 T->lchild=Insert(T->lchild,x);//插到左子樹上else if(x>T->c)T->rchild=Insert(T->rchild,x);//插到右子樹上 return T; } int main(){int n;while(scanf("%d",&n)!=EOF){loc=0;Node *T=NULL;for(int i=0;i<n;i++){int x;scanf("%d",&x);T=Insert(T,x);//插入到排序樹中 }printf("先序遍歷:");preOrder(T);printf("\n");printf("中序遍歷:");inOrder(T);printf("\n");printf("后序遍歷:");postOrder(T);printf("\n");}return 0; }

?

轉載于:https://www.cnblogs.com/Elaine-DWL/p/7106044.html

總結

以上是生活随笔為你收集整理的二叉树的基本操作之二叉排序树的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。