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

二叉樹的基本操作小結(jié)

發(fā)布時(shí)間:2011-09-16 共5頁

導(dǎo)讀:主要練習(xí)了二叉樹的非遞歸遍歷,利用棧,和隊(duì)列來完成。

  二叉樹的一般操作,實(shí)現(xiàn)了下:

  主要練習(xí)了二叉樹的非遞歸遍歷,利用棧,和隊(duì)列來完成。算法思想,沒描述清楚,表達(dá)能力很差...崩潰....

  代碼

  #include "stdio.h"

  #include "malloc.h"

  #define  MAXSIZE 20

  //二叉樹結(jié)點(diǎn)的結(jié)構(gòu)體表示形式

  typedef struct node

  {

  char    data;

  struct node* left,*right;

  }BTree;

  //棧的結(jié)構(gòu)體表示形式

  typedef struct stackelem

  {

  BTree* a[MAXSIZE];

  int top;

  }Stack;

  //隊(duì)列的結(jié)構(gòu)體的表示形式

  typedef struct queueelem

  {

  BTree* b[MAXSIZE];

  int front,rear;

  }Queue;

  //創(chuàng)建二叉樹,利用遞歸的方法

  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);

  }

  }

百分百考試網(wǎng) 考試寶典

立即免費(fèi)試用