数据结构——图的遍历

前面有一题是多态和另外一个名词的解释,有点记不清了。
然后还有一道题考的是括号
【菜科解读】
接下来今天讲数据结构——图的遍历~
上个学期在上海泰瑞达的春季招聘中曾被考过这类问题。
前面有一题是多态和另外一个名词的解释,有点记不清了。
然后还有一道题考的是括号解析,这个很简单的,用栈就能直接处理。
然后后面就是连续的两个图的问题。
之前好像只是简单的看了看源代码,对于什么是深度优先遍历和广度优先遍历稍微有点认识吧。
结果自然是可想而知,比较惨的。
当时我在卷子上是这么写的:“今天不会,明天就会了”。
当天回去就开始看图论,但是确实是搞的差不多了,不过现在嘛,呵呵~
首先,图的存储结构有简单的两种:1 邻接矩阵法 2临界表法
邻接矩阵我觉得是非常明了的一种图的表示方法,当然了,其缺点就是,在图的点数多而连接线少的时候,比较浪费资源。
我的邻接矩阵简单代码如下:
1 int main() 3 cout > nLineNumbers;23 // while(nLineNumbers --)24 // {25 // cout > nItem >> Point;27 // tmpGphLst.AddToListByOrder(nItem, Point);28 // }29 // tmpGphLst.BFS();30 // cout 这样从1点开始进行深度优先遍历,我们很容易就能得出其遍历结果:1 2 3 5 4
这个结果相信不用我多说吧,具体可以看代码及其运行结果:
1 int Graph::DeepSearch(int Point) 2 { 3 p_nVisitList[Point] = 1; 4 cout 而邻接矩阵的广度优先遍历则是逐层访问,比较适合邻接表来做。邻接矩阵的广度优先遍历方法如下:
1 void Graph::BFS() 3 p_nVisitList[4] = 1; 4 cout DL; 6 DL.push(4); 7 while(!DL.empty()) 9 int val = DL.front();10 DL.pop();11 for(int i = 0;i 看下这个类的代码: 1 class ListNode 3 public: 4 int val; 5 int weight; 6 ListNode * next; 7 public: 8 ListNode(); 9 };10 ListNode::ListNode():val(0), weight(0), next(NULL)14 class GraphList16 public:17 GraphList();18 ~GraphList();19 void AddToListByOrder(int nitem, int Point);20 void BFS(int n = 0);//这个广度优先遍历的代码太好写了21 private:22 int visit[5];23 ListNode * Next[5];24 };上面的代码中包含了两个类,一个是邻接表的节点类,另外一个是邻接表本身。
代码还是很简单的,而且因为邻接表的特性,使得分层遍历十分方便,看主函数代码结构:
1 GraphList tmpGphLst; 2 int nLineNumbers = 0; 3 int nItem, Point; 4 cout > nLineNumbers; 6 while(nLineNumbers --) 8 cout > nItem >> Point;10 tmpGphLst.AddToListByOrder(nItem, Point);12 tmpGphLst.BFS();13 cout 2 #include 4 using namespace std; 6 class Graph 8 private: 9 //访问控制 10 int p_nVisitList[5]; 11 int (* pBlock)[5]; 13 public: 14 Graph(int (*pParam)[5]); 15 ~Graph(); 16 //深度优先遍历 17 int DeepSearch(int Point = 0); 18 void BFS(); 19 void ResetVisit(); 20 }; 22 class ListNode 23 { 24 public: 25 int val; 26 int weight; 27 ListNode * next; 28 public: 29 ListNode(); 30 }; 31 ListNode::ListNode():val(0), weight(0), next(NULL) 32 { 33 ; 34 } 35 class GraphList 36 { 37 public: 38 GraphList(); 39 ~GraphList(); 40 void AddToListByOrder(int nitem, int Point); 41 void BFS(int n = 0);//这个广度优先遍历的代码太好写了 42 private: 43 int visit[5]; 44 ListNode * Next[5]; 45 }; 46 void GraphList::AddToListByOrder(int nitem, int Point)//前插法,代码好写 47 { 48 if(nitem >= 0 && nitem = 0 && Point val = Point; 54 pnewnode->next = Next[nitem]; 55 Next[nitem] = pnewnode; 56 } 57 } 59 void GraphList::BFS(int n) 60 { 61 for(int i = 0;i val]) 72 { 73 cout val val] = 1; 75 } 76 pLNTmp = pLNTmp -> next; 77 } 78 } 79 } 81 GraphList::GraphList() 82 { 83 for(int i = 0;i next; 98 delete Next[i]; 99 Next[i] = ptmpLN;100 }101 }102 }104 void Graph::ResetVisit()105 {106 for(int i = 0;i DL;143 DL.push(4);144 while(!DL.empty())145 {146 int val = DL.front();147 DL.pop();148 for(int i = 0;i > nLineNumbers;182 while(nLineNumbers --)183 {184 cout > nItem >> Point;186 tmpGphLst.AddToListByOrder(nItem, Point);187 }188 tmpGphLst.BFS();189 cout 数据结构,—,图,的,遍历,接下来,今天,讲,秋天的美味:酱爆鸡丝科学做法大全
缓解秋燥,可以从三方面入手。
一是保证充足的睡眠,二是适当体育锻炼,三是合理饮食。
入秋后,饮食上尤其要注意,少吃大鱼大肉,多吃一些低脂肪、高蛋白食物。
比如:鸡肉。
鸡肉是我们餐桌上常见的食材,脂肪含量低,蛋白质含量很高,其所含的蛋白质可以说在肉类食物中含量最高。
鸡肉热量低,尤其是鸡胸肉,肉质细嫩,味道鲜美,每100克鸡胸肉仅含有133大卡,但蛋白质的含量却高达20%。
鸡胸肉可以炒、可以炖、可以煮,可以油炸……吃法太多了。
今天分享一道用鸡胸肉制作的美食——酱爆鸡丝。
鸡胸肉加点酱一炒太香了!秋天容易疲乏没精神的人多吃点,因为鸡肉对于营养不良、发力疲劳的的人有一定的帮助。
秋天干燥,要少吃大鱼大肉多吃它,高蛋白低脂肪,多吃也不会长胖,加点酱一炒真是香!做法很简单,跟着我一起来制作吧!——【酱爆鸡丝】——【食材】:鸡胸肉1块,食用油适量,荷叶饼8个【调料】:甜面酱3勺,辣椒酱1勺,蜂蜜苹果醋1勺,白糖1勺,大葱1段,生姜1小块,盐适量,料酒2勺,胡椒粉1勺,玉米淀粉1勺,鸡精适量【制作步骤】:步骤一:准备好需要的食材,开始制作。
不喜欢吃辣的可以不放辣椒酱,用甜面酱代替就行,不过这个辣椒酱一点儿不辣。
没有苹果醋可以用普通醋代替,减少用量。
步骤二:鸡胸肉清洗干净,去掉筋膜,先片成薄片,再切成细丝,用清水清洗两遍,直到每根鸡丝清清爽爽。
步骤三:鸡丝挤干水,加入1勺胡椒粉、2勺料酒、适量盐、1勺玉米淀粉、3大勺清水,下手抓捏上劲,让水分全部吃进去,腌制10分钟。
步骤四:3勺甜面酱,1勺辣椒酱,1勺苹果醋,1勺白糖,1勺玉米淀粉,少许鸡精,加入少量的清水,搅拌均匀调成酱料待用。
步骤五:匆忙中容易出错,先做好准备工作,不用慌张。
把提前做好的荷叶饼用微波炉或者蒸锅加热一下,摆在盘子周围,大葱切成细丝放在中间,一会儿用来装菜用。
步骤六:炒锅烧热放油,油热后放入鸡丝,中火炒至断生出锅待用,差不多八分熟就行了,时间长了鸡丝不够软嫩,口感不好。
步骤七:开始炒酱,炒锅里保持干净,加入适量油,油温5成热倒入酱汁,小火慢慢炒出浓浓的酱香味,酱汁变浓稠,小心点,不要炒糊了。
步骤八:酱汁炒好后,倒入鸡丝,翻炒均匀,让每一条鸡丝都包裹上香浓的酱汁就好了,出锅,放在摆好葱丝和荷叶饼的盘子中,上桌开吃吧!这样一盘酱汁浓郁、软嫩入味的酱爆鸡丝就做好了,搭配上荷叶饼或者豆腐皮一裹一卷,一起送入口中,嗬!那美味,绝了!我自己都能吃一盘。
做起来也不费劲,平时也可以做,家里来客或者节日宴客,都是一道不错的大菜呢!
男人总是先性后爱?男人是下半身思考的动物吗?[图]
在进化的过程中,男性为了将自己的基因遗传下去,会想尽一切办法,获得更多的女性资源,更多的同房机会,这样,基因传下去的可能性也会大上许多。
所以我们常常会看到男人花心,跟很多女人搞暧昧关系,都是基因在作怪。
男人在一定程度上就是用下半身思考的动物。
2、性与爱的分离男人跟大部分女人不一样,能够很好的把性与爱分离开来,性就是性,爱就是爱。
男人对于陌生女人,如果是年轻漂亮,合“口味”的话,大部分都是会来者不拒的,但是只会停留在性这个层面。
所以为什么会有许多男人在一夜情之后,就选择消失,拒绝联系。
而对于熟人,男人往往不会将性与爱分离开来。
3、性是一种沟通事实上性不只是一种身体欲望的释放,性是一种深度沟通的途径。
在同房之后,我们往往会赤裸相对,抽颗烟,和对方谈谈心,很多平常藏在心中的话,在同房之后都会说出来,能够明显拉近两个人的距离。
所以,不只是男人会因性而爱,女人同样会因为性的沟通,爱得更深。
4、小心骗色如果你遇到了一个总是对你说:男人只有先性才能够爱。
那么很有可能这个男人是在骗你上床,他的唯一目的就是这个,一旦得手,他就会立马消失。
如果遇到这种情况,我建议立马跟对方说拜拜,同时奉上你的大巴掌,越大越好!5、过早性生活危害①少女的宫颈组织细胞尚未发育成熟,比较嫩弱,对外界致癌和促癌物质敏感,若性伴侣是一个癌细胞的携带者,就很容易通过同房将癌细胞种植在少女尚未成熟的宫颈组织上。
②精子进入女性私处后产生一种精子抗体,此抗体一般要在4个月左右方能消失。
若性伴侣愈多,同房过频,那么,则会产生多种抗体异性蛋白,在短时间内进入女子体内,从而干扰了产生精子的抗体反应,故而易罹患宫颈癌。
③近年研究发现,宫颈癌发病与疱疹2型病毒感染有关,如性伴侣是此病毒的携带者,会通过性次感染而患宫颈癌。
④男性包皮垢中多种致病的细菌、病毒尤其是致尖锐湿疣的人乳头瘤病毒过早过多地反复刺激年轻女子的下生殖道及子宫颈上皮,导致慢性子宫颈炎,最终转化为子宫颈癌。
资料显示:20岁以前结婚发生性行为的妇女,子宫颈癌的发病率为1.58%,21岁以后结婚发生性行为的妇女,子宫颈癌的发病率下降到0.37%,两者相差4倍。
有人早在140余年前就观察到,修道院的修女其子宫颈癌的发病率大大低于已婚妇女。
这从另一角度说明了子宫颈癌与性生活的关系。
,菜叶说说