C#如何遍历数据结构?

各种数据结构都解释一下吧、谢了、... 各种数据结构都解释一下吧、谢了、 展开
 我来答
geoff727
2011-01-09 · TA获得超过191个赞
知道答主
回答量:88
采纳率:0%
帮助的人:102万
展开全部
这个咋说呢?数据结构有无数种,任何人都可以根据自己的需求设计适合的数据结构,至于遍历,方法也要根据具体的结构进行设计啊,大体上常用的遍历有几种:顺序容器的遍历、树的遍历以及图(网络)的遍历。顺序的遍历很好想了,由首节点开始依序访问,直到最后结点为止,树的遍历和图的遍历基本上可以分为两种,一种是深度优先,一种是广度优先。深度优先的主要思想是对于当前节点,如果该节点存在未访问过的相邻节点,则选择其中进行访问,然后对该节点进行迭代访问,直到当前节点的所有相邻节点都被访问过,则返回它的上一个节点继续迭代执行,这个这么说不太好理解。举个例子吧,走一个迷宫,当你遇到一个路口(可以是二叉路口、十字路口、或更多个分支的路口)时,选择其中的一个一直走下去,直到遇到死路时,就返回向最后遇到过的路口走。广度优先的原则就是,对于当前节点,先按一定次序访问它的所有未访问过的相邻节点,再对这些节点依次进行迭代访问。比如说,你走迷宫,遇到一个路口,则对每一个分支路线派出一个分身继续走,直到遇到下一个路口,然后再对该路口同时进行分支访问,如果你不明白,建议你去看一下数据结构方面的书,我个人推荐最好的书是〈算法导论〉,程序员必读的书。里面有很好的讲解。
至于你说的C#中的数据结构遍历,我想你说的就是stl容器吧?其实基本上来说只有顺序容器才有遍历的接口,它是靠迭代器实现的,具体什么叫迭代器就不细说了,举一小段代码来说明吧
...........//code
List<int> list; //创建一个list容器
for(int i=0;i<10;i++)
{
list.Add(i); //插入十个元素,各元素的值为它的标号。
//这时list里有十个元素了
}
//////////下面是遍历
for(List<int>::iterator iter=list.begin();iter!=list.end();iter++)
{ //list.begin()是list中的首元素的位置。list.end()返回的是list末元素所以位置的下一位置
cout<<(*iter)<<endl;
}
不知道这么写行不,如果你想具体用哪个容器,去找找MSDN就行,上面写的很明白的
...........//code
woailuo_zc
2011-01-08 · TA获得超过565个赞
知道小有建树答主
回答量:365
采纳率:0%
帮助的人:174万
展开全部
链表,线性表,栈,堆
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式