精品理论电影在线_日韩视频一区二区_一本色道精品久久一区二区三区_香蕉综合视频

二叉樹的基本操作小結

發布時間: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);

  }

  }

百分百考試網 考試寶典

立即免費試用