技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

JavaScript數(shù)據(jù)結(jié)構(gòu)之二叉樹的查找算法示例

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2017-11-05 12:06┆點擊:

  前面文章介紹了二叉樹的遍歷,現(xiàn)在談?wù)勗诙鏄渲羞M(jìn)行查找。對二叉查找樹來說,一般有以下三類查找:最大值,最小值和給定值。

  查找最小值就是遍歷左子樹,直到找到最后一個結(jié)點,這是因為在二叉查找樹中較小的值總是在左子節(jié)點上的。

  代碼如下:

  function getMin(){//查找最小值

  var current=this.root;//指向根節(jié)點

  while(current.left!=null){

  current=current.left;

  }

  return current.data;

  }

  同理可得查找最大值的代碼如下:

  function getMax(){//查找最大值

  var current=this.root;

  while(current.right!=null){//如果未找到右結(jié)點則一直找

  current=current.right;

  }

  return current.data;

  }

  而在二叉查找樹中查找指定值也不難,就是依次判斷節(jié)點值的查找值的大小,如果節(jié)點值小,則繼續(xù)往右查找,如果節(jié)點值大,則繼續(xù)往左查找,代碼如下:

  function find(data){//查找某個值

  var current=this.root;

  while(current!=null){

  if(current.data==data){

  return current;

  }else if(current.data>data){//如果節(jié)點值比尋找值大,則往左找

  current=current.left;

  }else{//如果節(jié)點值比尋找值小,則往右找

  current=current.right;

  }

  }//如果沒找到則返回null