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

📄 method.c

📁 二叉树遍历的算法程序
💻 C
字号:
#include <stdio.h>
#include "head.h"
   

void creatree(BTree **BT,char *str)
{
      BTree *stack[MaxSize],*p;
      int top=-1,k,j=0;/*top为栈指针,k指定是左还是右孩子,j为str指针*/
      char ch;
      *BT=NULL;
      ch=str[j];
 
	  while (ch!='\0')
      {
	     switch(ch)
		 {
	        case '(':top++;stack[top]=p;k=1;  /*为左结点*/
		             break;
	        case ')':top--;
		             break;
	        case ',':k=2;   /*为右结点*/
		             break;
	        default: p=(BTree *)malloc(sizeof(BTree));
		             p->data=ch;
					 p->left=p->right=NULL;
		             if (*BT==NULL) /*根结点*/
			            *BT=p;
		             else
					 {
		                switch(k)
						{
			              case 1:stack[top]->left=p;
				                 break;
			              case 2:stack[top]->right=p;
						}
					 }
		 }
	     j++;
	     ch=str[j];
      }
}


void preorder(BTree *BT)
{
     if (BT!=NULL)
     {
 	    printf("%c",BT->data);
	    preorder(BT->left);
	    preorder(BT->right);
     }
}


void inorder(BTree *BT)
{
    if (BT!=NULL)
    {
 	   inorder(BT->left);
	   printf("%c",BT->data);
	   inorder(BT->right);
    }
}



void postorder(BTree *BT)
{
    if (BT!=NULL)
    {
	  postorder(BT->left);
	  postorder(BT->right);
	  printf("%c",BT->data);
    }
}

⌨️ 快捷键说明

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