⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 二叉树排序程序.cpp

📁 在数据计算和存储过程中
💻 CPP
字号:

                     // 二叉树排序程序 //
                     //                   //
#include <iostream.h>

 //定义结构//
struct node                   
{     
   int data;
   node *xch,*jch;
};
 
int array[8]={10,18,3,8,12,2,7,3};    //定义数组,数组中数是需排序的数
void insert(node *head,node *s);             //插入函数声明
void display(node *head);                  //输出函数声明
node *head;                           //首节点
 //*********************************************************************//
 
 void main()
 { 
  node *s;
  head=new node;
  head->data=array[0];
  head->xch=head->jch=NULL;//建立头节点
  for(int i=1;i<=7;i++)
  {
   s=new node;
   s->data=array[i];
   s->xch=s->jch=NULL;
   insert(head,s);               //把S节点插入head指向的二叉树
  }
  s=head;
  display(s);                    //输出排序结果
  cout<<endl;
  } 
                                 //输出函数//
 void display(node *s)
 {
  if(s->xch!=NULL) display(s->xch);
  cout<<s->data<<" ";
  if(s->jch!=NULL) display(s->jch);
 }
   
 void insert(node *head,node *s)
                                 //*把S接点插入以head为头的二叉树中p是遍历指针用于查找插入点,//
                                 // q是p的前驱节点,新节点插入q的左右子域中*//
 {
  node *p,*q;
  q=p=head;
  if(s->data>=p->data) 
	  p=p->xch;
  else
	  p=p->jch;
  while(p!=NULL)                 //p节点不等于NULL说明还没找到叶子节点,继续查找//
  {
   q=p;
   if(s->data>=p->data)
	   p=p->xch;
   else 
	   p=p->jch;
  }
  if(s->data>=q->data)
	  q->xch=s;
  else 
	  q->jch=s;
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -