精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C#遞歸樹實(shí)現(xiàn)實(shí)例簡(jiǎn)析

開發(fā) 后端
C#遞歸樹實(shí)現(xiàn)實(shí)例主要向你介紹了通過遞歸算法的使用來實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的兩種具體的實(shí)現(xiàn)方法,那么本問就向你介紹具體的實(shí)現(xiàn)過程。

C#遞歸樹實(shí)現(xiàn)實(shí)例是如何辦到的呢?這里我們使用遞歸來實(shí)現(xiàn)對(duì)于數(shù)據(jù)的樹形結(jié)構(gòu)的呈現(xiàn),那么關(guān)于遞歸的方向我們向你介紹兩個(gè),一個(gè)是從父節(jié)點(diǎn)出發(fā),一個(gè)是反向的實(shí)現(xiàn),讓我們看看具體的實(shí)現(xiàn)步驟吧:

C#遞歸樹實(shí)現(xiàn)實(shí)例:從父結(jié)點(diǎn)加字節(jié)點(diǎn),注釋的是把字節(jié)點(diǎn)向父結(jié)點(diǎn)上加

  1. //將數(shù)據(jù)填充到dataTable  
  2. DataTable mytable = new DataTable();  
  3. //構(gòu)建表結(jié)構(gòu)  
  4. DataRow myRow;  
  5. DataColumn Id = new DataColumn("Id"typeof(System.Int32));  
  6. mytable.Columns.Add(Id);  
  7. DataColumn Name = new DataColumn("Name"typeof(System.String));  
  8. mytable.Columns.Add(Name);  
  9. DataColumn ParentId = new DataColumn("ParentId"typeof(System.Int32));  
  10. mytable.Columns.Add(ParentId);  
  11. DataColumn SiteInfo = new DataColumn("SiteInfo"typeof(SiteInfo));  
  12. mytable.Columns.Add(SiteInfo);  
  13. //填充數(shù)據(jù)  
  14. //注意i是從1開始的,因?yàn)閿?shù)據(jù)庫收條沒有意義,  
  15. //數(shù)據(jù)庫首條記錄id為0,會(huì)引起死循環(huán)  
  16. for (int i = 1; i <= cata.Length - 1; i++)  
  17. {  
  18.  myRow = mytable.NewRow();  
  19.  myRow["Id"] = cata[i].Id;  
  20.  myRow["Name"] = cata[i].Name;  
  21.  myRow["ParentId"] = cata[i].ParentId;  
  22.  myRow["SiteInfo"] = cata[i].SiteInfo;  
  23.  
  24.  mytable.Rows.Add(myRow);  
  25. }  
  26.  
  27.  
  28. this.InitTree(newNode.ChildNodes, 0, mytable);  
  29.     
  30.  
  31. //Hashtable ht = new Hashtable();  
  32.  
  33. //for (int i = 1; i < cata.Length; i++)  
  34. //{  
  35. // ht.Add(cata[i].Id, cata[i]);  
  36. //}  
  37.  
  38.  
  39. //Hashtable allTreeNodes = new Hashtable();  
  40. //Hashtable parentNodes = new Hashtable();  
  41. ////遍歷樹節(jié)點(diǎn)描述并擬向生成樹結(jié)構(gòu)  
  42. //foreach (DictionaryEntry dict in ht)  
  43. //{  
  44. // CatalogInfo treeobj = (CatalogInfo)dict.Value;  
  45. // if (allTreeNodes.Contains(treeobj.Id))  
  46. //  continue;  
  47. // TreeNode tn = new TreeNode();  
  48. // tn.Text = treeobj.Name;  
  49. // tn.Value = treeobj.Id.ToString();  
  50. // tn.NavigateUrl = "main_right.aspx?catalogid=" + tn.Value;  
  51. // tn.Target = "WorkArea";  
  52. // generateParentTreeFromNode(  
  53. tn, (CatalogInfo)treeobj, ht, parentNodes, allTreeNodes);  
  54. //}  
  55.  
  56. ////將所有根節(jié)點(diǎn)放到treeview上  
  57. //foreach (DictionaryEntry dict in parentNodes)  
  58. //{  
  59. // newNode.ChildNodes.Add((TreeNode)dict.Value);  
  60. //}  
  61.   }  
  62. }  
  63.  private void InitTree(TreeNodeCollection Nds,   
  64. int parentID, DataTable dt)//遞歸初始化樹  
  65.  {  
  66.   TreeNode tmpNd;  
  67.   //遞歸尋找子節(jié)點(diǎn)  
  68.   DataRow[] rows = dt.Select("ParentID=" + parentID);  
  69.   foreach (DataRow row in rows)  
  70.   {  
  71. tmpNd = new TreeNode();  
  72. tmpNd.Value = row["Id"].ToString();  
  73. tmpNd.Text = row["Name"].ToString();  
  74. tmpNd.NavigateUrl = "main_right.aspx?catalogid=" 
  75. + row["Id"].ToString() + "&catalogName=  
  76. " +Server.UrlEncode(row["Name"].ToString());  
  77. tmpNd.Target = "WorkArea";  
  78. Nds.Add(tmpNd);  
  79.  
  80. InitTree(tmpNd.ChildNodes, Convert.ToInt32(tmpNd.Value), dt);  
  81.   }  
  82.  }  

C#遞歸樹實(shí)現(xiàn)實(shí)例:從子節(jié)點(diǎn)出發(fā)考慮

  1. /// <summary>  
  2. /// 反向樹生成算法  
  3. /// </summary>  
  4. /// <param name="subtr">子節(jié)點(diǎn)</param>  
  5. /// <param name="subto">子節(jié)點(diǎn)描述對(duì)象</param>  
  6. /// <param name="hashedTreeObject">被保存到哈希表中的子節(jié)點(diǎn)描述</param>  
  7. /// <param name="hashedParents">被保存到哈希表中的父節(jié)點(diǎn)描述</param>  
  8. /// <param name="allTreeNodes">被保存到哈希表中的所有節(jié)點(diǎn)描述</param>  
  9. private void generateParentTreeFromNode(  
  10. TreeNode subtr, CatalogInfo subto, Hashtable hashedTreeObject,   
  11. Hashtable hashedParents, Hashtable allTreeNodes)  
  12. {  
  13.  
  14.  TreeNode trParent;  
  15.  if (null == hashedTreeObject)  
  16.   return;  
  17.  //確定父結(jié)點(diǎn)是否存在  
  18.  if (!hashedTreeObject.Contains(  
  19. subto.ParentId) || subto.ParentId == subto.Id )  
  20.  {  
  21.   //不存在則將當(dāng)前節(jié)點(diǎn)作為根  
  22.   if (hashedParents == null)  
  23. hashedParents = new Hashtable();  
  24.   if (!hashedParents.Contains(subto.ParentId))  
  25.   {  
  26. hashedParents.Add(subto.Id, subtr);  
  27. if (!allTreeNodes.Contains(subto.Id))  
  28.  allTreeNodes.Add(subto.Id, subtr);  
  29. trParent = subtr;  
  30.   }  
  31.  }  
  32.  else 
  33.  {  
  34.   //若存在,則獲取父結(jié)點(diǎn)  
  35.   CatalogInfo to = (CatalogInfo)hashedTreeObject[subto.ParentId];  
  36.   //判斷父結(jié)點(diǎn)是否已經(jīng)被保存到樹節(jié)點(diǎn)的哈希表中  
  37.   if (allTreeNodes.Contains(subto.ParentId))  
  38.   {  
  39. //if (allTreeNodes.Contains(subto.Id))  
  40. // return;  
  41. trParent = (TreeNode)allTreeNodes[subto.ParentId];  
  42. trParent.ChildNodes.Add(subtr);  
  43.   }  
  44.   else 
  45.   {  
  46. //父結(jié)點(diǎn)不存在于哈希表中,創(chuàng)建父結(jié)點(diǎn)并存放到葉子哈希表中  
  47. trParent = new TreeNode();  
  48. trParent.Text = to.Name;  
  49. trParent.Value = to.Id.ToString();  
  50. allTreeNodes.Add(subto.ParentId, trParent);  
  51. trParent.ChildNodes.Add(subtr);  
  52. //遞歸向上查找  
  53. generateParentTreeFromNode(trParent, to,   
  54. hashedTreeObject, hashedParents, allTreeNodes);  
  55. if (!allTreeNodes.Contains(subto.Id))  
  56.  allTreeNodes.Add(subto.Id, subtr);  
  57.   }  
  58.  
  59.  }  
  60. }  

C#遞歸樹實(shí)現(xiàn)實(shí)例的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C#遞歸樹的實(shí)現(xiàn)有所幫助。

【編輯推薦】

  1. C#遞歸算法理解的實(shí)例分析
  2. C#遞歸思路的使用實(shí)例詳解
  3. C#遞歸函數(shù)應(yīng)用實(shí)例解析
  4. DropDownList顯示的C#遞歸實(shí)現(xiàn)淺析
  5. C#treeview遞歸操作數(shù)據(jù)庫淺析
責(zé)任編輯:仲衡 來源: 博客園
相關(guān)推薦

2009-08-13 14:36:40

C#結(jié)構(gòu)體構(gòu)造函數(shù)

2009-08-12 16:38:35

C#讀取XML節(jié)點(diǎn)

2009-08-13 15:48:57

C#指針

2009-09-03 17:10:57

2009-08-13 10:27:28

C#讀取Excel數(shù)據(jù)

2009-09-01 16:59:25

C#畫直線

2009-09-01 13:59:01

C#操作Excel

2009-08-27 18:09:49

C#接口的實(shí)現(xiàn)

2009-09-09 12:55:59

C# TextBox事

2009-08-17 14:41:47

C#進(jìn)度條實(shí)現(xiàn)

2009-08-20 09:58:06

C#操作文本文件

2009-09-02 16:14:21

C#動(dòng)態(tài)創(chuàng)建數(shù)組

2009-09-03 17:23:45

C#發(fā)送郵件

2009-09-03 17:06:17

C#回車切換焦點(diǎn)

2009-08-12 10:07:51

C#運(yùn)算符

2009-08-14 09:50:46

C#復(fù)制構(gòu)造函數(shù)

2009-08-17 17:15:48

C# 進(jìn)度條效果

2009-09-03 14:20:21

C#日期格式化

2009-09-03 12:52:50

C#打開記事本

2009-08-31 12:31:45

C#創(chuàng)建文件夾
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美一区免费观看| 爱情岛论坛亚洲自拍| 黄色av网址在线免费观看| 日韩精品国产欧美| 欧美成人精品在线播放| 在线视频 日韩| 国产在视频一区二区三区吞精| 亚洲欧美一区二区三区孕妇| 九九九九精品| 国产又粗又大又爽视频| 国产精品久久久免费| www.欧美精品| 在线观看国产网站| 精品视频在线播放一区二区三区 | 国产盗摄x88av| 亚洲精华一区二区三区| 欧美一区永久视频免费观看| 黄色片久久久久| 成人免费一区二区三区牛牛| 中文字幕免费不卡| 久久久久久久久四区三区| 国产乱人乱偷精品视频| 日本中文在线一区| 久久露脸国产精品| 破处女黄色一级片| 欧美疯狂party性派对| 日韩www在线| 成人国产精品日本在线| 99免费在线观看| 亚洲成人三区| 一区二区亚洲欧洲国产日韩| 亚洲调教欧美在线| 日韩精品视频中文字幕| 欧美私人免费视频| 色综合av综合无码综合网站| 国语对白在线刺激| 亚洲精品久久嫩草网站秘色| 亚洲精品日韩成人| 激情综合闲人网| 99riav久久精品riav| 国产精品xxxx| 亚洲第一视频在线播放| 国产馆精品极品| 国产专区精品视频| 一区二区的视频| 老司机午夜精品| 国产精品免费一区二区三区都可以| 成人毛片在线播放| 香蕉成人久久| 国产va免费精品高清在线| 一级片中文字幕| 性久久久久久| 全亚洲最色的网站在线观看| 欧美国产成人精品一区二区三区| 亚洲精品影院在线观看| 午夜精品免费视频| 久久9999久久免费精品国产| 黄色另类av| 97视频免费在线观看| 日本三级免费看| 国产精品一国产精品k频道56| 91国内揄拍国内精品对白| 国产又大又黑又粗免费视频| 国产亚洲综合精品| 日本成人黄色片| 日本免费精品视频| 蜜桃视频第一区免费观看| 国产色视频一区| 精品人妻一区二区三区换脸明星 | 免费成人黄色| 亚洲婷婷综合色高清在线| 中文字幕日韩一区二区三区| av小次郎在线| 午夜精品久久久久| 日av中文字幕| 伊人亚洲精品| 亚洲成人动漫在线播放| 人妻少妇精品视频一区二区三区| 日本免费久久| 色哟哟一区二区三区| 一级在线免费视频| 欧美激情精品| 精品视频在线观看日韩| 五月天免费网站| 欧美性久久久| 国产91色在线| japanese国产| 91亚洲精品久久久蜜桃网站| 亚洲欧洲精品一区| 国产乱妇乱子在线播视频播放网站| 精品久久久久久国产91| 中文字幕在线综合| 福利电影一区| 这里只有精品在线观看| 精品99久久久久成人网站免费| 国产色综合网| 91亚洲午夜在线| 日韩av成人| 亚洲欧美经典视频| 人妻无码视频一区二区三区| 试看120秒一区二区三区| 亚洲另类图片色| 欧美人妻精品一区二区三区| 老司机精品视频网站| 91免费版黄色| 成人亚洲综合天堂| 午夜伦理一区二区| 亚洲精品乱码久久久久久动漫| 亚洲第一论坛sis| 久久99国产综合精品女同| 五月天婷婷导航| 成人丝袜18视频在线观看| 午夜精品福利一区二区| 国产传媒在线观看| 日韩欧美卡一卡二| 国精产品一区一区| 免费欧美日韩| 精品国产乱码久久久久久88av | 99视频国产精品免费观看a| 91网站最新网址| 久久久久99精品成人片| 婷婷久久免费视频| 一区二区三区四区在线观看视频| 欧美bbbbbbbbbbbb精品| 国产乱码精品一区二区三区五月婷| 日韩欧美精品久久| 成人片免费看| 日韩精品有码在线观看| 日本少妇全体裸体洗澡| 东方aⅴ免费观看久久av| 亚洲国产精品女人| 国产69精品久久| 亚洲性视频网站| 国产精品视频免费播放| 91亚洲精品久久久蜜桃| 少妇人妻无码专区视频| 大奶一区二区三区| 欧美激情视频在线免费观看 欧美视频免费一| 真实的国产乱xxxx在线91| 久久精品网站免费观看| 男人操女人免费软件| 视频小说一区二区| 2021国产精品视频| 色哟哟在线观看| 亚洲国产精品一区二区久久恐怖片 | 神马午夜在线视频| 亚洲第一网中文字幕| 18精品爽视频在线观看| 成人中文字幕合集| 日韩xxxx视频| 日韩大尺度在线观看| 国产91|九色| 青青操视频在线| 欧美伊人久久久久久久久影院 | 超碰免费在线| 欧美天堂亚洲电影院在线播放| 91导航在线观看| 狠狠色丁香久久婷婷综合丁香| 亚洲免费av网| a看欧美黄色女同性恋| 97视频在线播放| 国产在线高清| 777亚洲妇女| 久久久全国免费视频| 91亚洲精品乱码久久久久久蜜桃| 日韩a在线播放| 欧美亚洲在线日韩| 91青草视频久久| segui88久久综合| 精品亚洲国产视频| 最近中文在线观看| 亚洲免费在线播放| 国产麻豆xxxvideo实拍| 日韩国产在线观看一区| 久久99国产精品一区| 风间由美中文字幕在线看视频国产欧美| 欧美亚洲另类制服自拍| 高清av在线| 日韩欧美国产wwwww| 国产污污视频在线观看| 欧美韩国一区二区| 四虎国产精品免费| 玖玖玖国产精品| 亚洲免费视频播放| 三级精品视频| 国产欧美精品一区二区三区介绍| 日本在线视频网址| 亚洲一区二区黄| 亚洲精品综合网| 一本久道中文字幕精品亚洲嫩| 91狠狠综合久久久| 99热这里都是精品| 亚洲免费成人在线视频| 国产精品亚洲欧美| 强开小嫩苞一区二区三区网站 | 久久艹国产精品| 欧美日韩一区二区综合| 成人在线免费网站| 成人不卡视频| 57pao成人国产永久免费| 看女生喷水的网站在线观看| 日韩电影在线观看中文字幕| 国产美女三级无套内谢| 色综合欧美在线| 国产精品成人aaaa在线| 中文字幕一区免费在线观看| 一区二区三区少妇| 国产很黄免费观看久久| 亚洲欧洲日本精品| 麻豆亚洲精品| 蜜臀av色欲a片无码精品一区| 久久福利影院| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 四虎永久免费影院| 国产精品综合一区二区| 欧美日韩一区二区三区69堂| 亚洲欧美日韩国产| 霍思燕三级露全乳照| 亚洲色图插插| 亚洲欧美久久234| 九九久久婷婷| 国外成人免费视频| 999在线精品| 亚洲sss综合天堂久久| julia一区二区三区中文字幕| 538国产精品一区二区免费视频| 欧美性爽视频| 欧美成人精品不卡视频在线观看| 91露出在线| 伊人久久久久久久久久久久久| 日韩一卡二卡在线| 亚洲精品一区二区三区四区高清 | jizzjizz少妇亚洲水多| 日本视频久久久| 亚洲国产欧美日本视频| 538国产精品一区二区在线 | 黑人精品xxx一区一二区| 五月天综合在线| 午夜日韩在线电影| 精品国产免费观看| 日韩欧美亚洲一二三区| 欧美三级韩国三级日本三斤在线观看| 亚洲一二三四在线| 欧美一级高潮片| 亚洲午夜精品网| www.youjizz.com亚洲| 亚洲综合久久久久| 国产午夜福利精品| 懂色aⅴ精品一区二区三区蜜月 | 888av在线视频| 97视频在线观看免费| 色多多在线观看| 欧美性视频精品| 粉嫩一区二区三区| 国产一区视频在线播放| 欧美成人免费全部网站| 成人中文字幕+乱码+中文字幕| www.欧美视频| 国产成人成网站在线播放青青| xvideos.蜜桃一区二区| 久久久久综合一区二区三区| 国产成人影院| 亚洲激情图片| 你懂的视频一区二区| 草草视频在线免费观看| 久久xxxx| 爽爽爽在线观看| 国产成人免费高清| av网页在线观看| 久久久久久久久伊人| 五月天免费网站| 亚洲一二三四区| 亚洲av无码精品一区二区| 欧美日韩dvd在线观看| 成人福利小视频| 亚洲欧美国产精品| 免费的黄网站在线观看| 亚洲**2019国产| 91tv亚洲精品香蕉国产一区| 91中文在线视频| 日韩高清成人在线| eeuss中文| 新67194成人永久网站| 亚洲久久中文字幕| 不卡的av在线| 秋霞网一区二区三区| 夜夜嗨av一区二区三区中文字幕 | 亚洲激情第一页| seseavlu视频在线| 欧美裸体男粗大视频在线观看| 欧洲av不卡| 999视频在线观看| 蜜桃国内精品久久久久软件9| 久久av喷吹av高潮av| 美女视频一区免费观看| 亚洲热在线视频| 欧美国产日韩精品免费观看| 亚洲一区二区91| 91精品在线一区二区| 欧美日韩视频精品二区| 欧美精品一二区| 成人自拍av| 精品在线视频一区二区三区| 91精品推荐| 亚洲精品一二三四五区| 成人动漫在线一区| 可以直接看的黄色网址| 在线观看精品一区| 三级理论午夜在线观看| 久久久久久久久久久人体| vam成人资源在线观看| 水蜜桃亚洲一二三四在线| 亚洲视频精品一区| 日韩激情中文字幕| 波多野结衣办公室33分钟| 亚洲自拍偷拍图区| 国产又粗又长又黄| 中文字幕日韩精品有码视频| 妞干网免费在线视频| 亚洲综合在线中文字幕| 91综合在线| caoporn超碰97| 久久夜色精品国产噜噜av | 91在线中文| 国产日韩欧美影视| 青青一区二区三区| 老熟妇仑乱视频一区二区| 91免费小视频| 欧美日韩乱国产| 亚洲精品国产精品自产a区红杏吧| 中文字幕资源网在线观看| 成人精品一区二区三区| 大胆日韩av| 在线观看免费污视频| 国产精品拍天天在线| 免费看av在线| 中文综合在线观看| 2019年精品视频自拍| 丝袜足脚交91精品| 麻豆国产精品视频| 黄色片网站在线播放| 欧美日韩日日摸| 日日夜夜精品一区| 91精品在线观看视频| 午夜久久影院| 伦理片一区二区| 黑人精品xxx一区一二区| 激情小视频在线| 国产精品极品尤物在线观看| 欧洲杯足球赛直播| 五月婷婷丁香色| 中文字幕一区二区三区不卡| 国产精品国产一区二区三区四区 | 黄色一级免费视频| 亚洲成人网av| 奇米777日韩| 中文一区一区三区免费| 国产精品99久久久久久有的能看 | 亚洲精品孕妇| 欧美黄色激情视频| 欧美伦理视频网站| 动漫一区二区| 欧美aaaaa喷水| 精品在线播放免费| 久久久久久久福利| 精品亚洲aⅴ在线观看| 久久夜夜久久| 久久手机在线视频| 26uuu另类欧美| 一级日韩一级欧美| 欧美激情精品久久久| 免费一区二区三区视频导航| 色噜噜狠狠永久免费| 亚洲一区二区av电影| 国产在线电影| av成人观看| 日韩国产高清在线| 欧美成欧美va| 亚洲人午夜精品| 欧美成年网站| 久久久久狠狠高潮亚洲精品| 1024亚洲合集| 四虎精品成人影院观看地址| 国产精品久久久久久久久久久新郎 | 韩国精品福利一区二区三区| 国产一级不卡毛片| 一区二区三区精品| 成年午夜在线| 豆国产97在线| 日本在线不卡视频一二三区| 国产在线成人精品午夜| 视频直播国产精品| 欧美尿孔扩张虐视频| 91精品国产三级| 色综合久久久久综合| 2020国产在线视频| 日本欧美精品久久久| 成人精品国产福利| 国产精品综合在线| 国产精品99久久久久久www|