二叉树的基本操作小结

发布时间:2011-09-16 共5页

导读:主要练习了二叉树的非递归遍历,利用栈,和队列来完成。

  二叉树的一般操作,实现了下:

  主要练习了二叉树的非递归遍历,利用栈,和队列来完成。算法思想,没描述清楚,表达能力很差...崩溃....

  代码

  #include "stdio.h"

  #include "malloc.h"

  #define  MAXSIZE 20

  //二叉树结点的结构体表示形式

  typedef struct node

  {

  char    data;

  struct node* left,*right;

  }BTree;

  //栈的结构体表示形式

  typedef struct stackelem

  {

  BTree* a[MAXSIZE];

  int top;

  }Stack;

  //队列的结构体的表示形式

  typedef struct queueelem

  {

  BTree* b[MAXSIZE];

  int front,rear;

  }Queue;

  //创建二叉树,利用递归的方法

  BTree* Create()

  {

  char ch;

  scanf_s("%c",&ch);

  getchar();

  if (ch=='#')

  {

  return NULL;

  }

  else

  {

  BTree* btree=(BTree*)malloc(sizeof(BTree));

  if (NULL==btree)

  {

  return NULL;

  }

  btree->data=ch;

  btree->left=Create();

  btree->right=Create();

  return btree;

  }

  }

  //前序遍历,递归的方法

  void Preorder(BTree* bt)

  {

  if (NULL!=bt)

  {

  printf("%c ",bt->data);

  Preorder(bt->left);

  Preorder(bt->right);

  }

  }

百分百考试网 考试宝典

立即免费试用