背景: #EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  
阅读新闻

C++数据结构学习:二叉树(3)

[日期:2005-12-29] 作者: [字体: ]
  递归遍历与非递归遍历

  前面写过一些关于递归的文章,因为那时还没有写到树,因此也举不出更有说服力的例子,只是阐述了“递归是一种思想”,正像网友评价的,“一篇入门的文章”。但只要能能让你建立“递归是一种思想”这个观念,我的努力就没有白费。现在,讲完了二叉搜索树,终于有了能说明问题的例子了。按照前面提供的代码,应该能调试通过下面的程序。

  #include

  usingnamespacestd;

  #include
  
  #include
  
  #include"BSTree.h"
  
  #include"Timer.h"
  
  #definerandom(num)(rand()%(num))
  
  #definerandomize()srand((unsigned)time(NULL))
  
  #defineNODENUM200000//nodenumber
  
  intdata[NODENUM];
  
  voidzero(int&t){t=0;}
  
  intmain()
  
  {
  
  BSTreea;Timert;randomize();inti;
  
  for(i=0;i   
  for(i=0;i   
  t.start();for(i=0;i   
  cout<<"Inserttime:"<   
  t.start();for(a.first();a.get()!=NULL;a.next())a.get()->data=0;
  
  cout<<"Non-Stacktime:"<   
  t.start();a.LevelOrder(zero);cout<<"LevlOrdertime:"<   
  t.start();a.PreOrder(zero);cout<<"PreOrdertime:"<   
  t.start();a.InOrder(zero);cout<<"InOrdertime:"<   
  t.start();a.PostOrder(zero);cout<<"PostOrdertime:"<   
  return0;
  
  }
  

1234下一页  GO
阅读:
打印