[藏]熬就一个字

文/冯仑 男孩子最大的问题,30多岁自己还没有成功。 现在社会反差特别大,怎么坚守自己的人生目标就特别难,随波逐流总是成本低,但对自己不负责任,不如设定一个特别大的目标,然后熬,一直熬下去。 熬是个什么概念? 20多岁刚毕业,你是社会的边缘,什么事都是哥哥、姐姐、30多40多的人在做,你得求这些人;等到30多岁,你开始进入到剧场最后一排,有了一张门票可以看别人演;到40、50岁,就是中排靠前一点的观众,看戏你就可以看的清楚了;你如果要出类拔萃就变成第一排了,再出类拔萃你就成演员了,等到你演完了,别人一鼓掌你也就该下场了。 20多岁一定要有一个准备,你就是边缘,边缘是尽快拿到入场券。比如说你到了公司,有了一个稳定的职业,或者一个基本稳定的生活,但是你乘自行车、赶公共汽车,这就是入场券,很正常。 我研究生刚毕业,中间工作八年,每天骑自行车赶到374,然后坐公共汽车,公共汽车下来再走一站地。回头想来不委屈,20多岁肯定是这个过程,如果20岁就跟50岁人一样,那这个戏就乱了,中国十几亿人都这么演的。插队是偶然性,比如像丁磊他是另外一种人生,这种概率极小极小,你可以朝着奋斗。 成功不是设计出来,是靠信念支撑,加上各种机遇偶然蹦出来了。当你成演员,基本上也该谢幕了,接下来又来了人,这个戏才能不断唱。现在70多岁人基本上又退回到场外了,看他儿子演孙子演,就这么一茬一茬。 熬要有耐心,熬不是你一个人熬,而是一代人熬。

2013-03-11 · 1 min · bystander

[E].Net 多线程指南

这是codeproject上的一个系列。我看完了。收获匪浅。可惜作者之后未能更新预想中的总结贴,多少有些可惜,不过。此系列非常非常不错。建议想学习.net多线程的看看。 1.net 多线程介绍 Introduction into threading in .NET 2.线程周期/线程优势/陷阱 Lifecycle of threads/Threading opportunities/Traps 3.线程同步 Synchronization 4.线程池 Thread Pools 5.UI中的线程应用 Threading in UIs (WinForms / WPF / Silverlight)

2013-03-06 · 1 min · bystander

装逼尚未成功,同志仍需努力。

 本文来自河蟹娱乐,看到的时候让我想起了《娱乐至死》和《瓦尔登湖》,总之,不打算拯救世界,也不在乎别人装逼,生活什么的,简单最好。文中观点也许略有偏颇,读者自己心中有数即可-bystander 你受过良好的教育,有意无意间说起自己的大学,旁人无一例外纷纷投来艳羡目光。你工作光鲜,不是四大就是4A,不是垄断国企就是全球500强;在一个都是中国人的公司里互相叫对方英文名。你衣食无忧,三个月工资买一LV包;你生活清闲,上班时就像神九的航天员,明明啥事没干还要装出一副很忙的样子;你格调不俗,业余时间不是昆曲就是话剧,不是民谣专场就是妈妈咪呀;你善良正义,身处斗室,胸怀天下,每天吃饱饭就刷刷微博拯救中国。 你用苹果,买个五千块的马脸iPhone,又是贴膜又是镶钻,十天换八个壳;你用谷歌,买个两千块的安卓手机,又是S-OFF又是ROOT,十天刷八个ROM。你关注互联网,精通电子产品,上机锋网威锋网雷锋网,电脑里永远装着十个GTD软件八个思维导图软件,用Instagram记录生活,对乔布斯比对你爸还了解,以果粉自居并喜欢到论坛上问:iOS6完美越狱什么时候出来啊? 你发烧,你还发骚,出门带着IPC,用麻绳绑个随身耳放,再配一对ER4P入耳式耳塞,完全隔音,也不怕被车撞死。嫌不够惹眼?那就换一副时下最流行的魔声Beats Pro头戴式耳机,每一个苹果旗舰店的配件区里都有卖,它颜色鲜艳外形时尚,两个耳朵每边印着一个b,挂在你的头上,真是实至名归。 你叫自己“吃货”,可怜的娃从小在城里长大没吃过什么好东西,为了美食频道里推荐的坑爹路边摊,坐10块钱地铁从城南干到城北。你热爱美食,每次花十分钟炒菜,二十分钟摆盘,三十分钟拍照,拍好导进PhotoShop里用康熙字典体配上两句文言文,传到博客上豆瓣上微博上。 你文艺青年,琴棋书画样样不通,格律没搞懂就敢写古诗词,最爱莎士比亚的英雄双行体。你只到电影院看电影,提到外国电影从不说中文名,也不说英文名,管《指环王》叫LOTR,《蝙蝠侠3》叫TDKR,倍洋气倍有面子。你一听到维瓦尔第的《四季》,就会想起波光粼粼的日内瓦湖和白雪皑皑的阿尔卑斯山。 终于有一天,当你拿着一张音乐会赠票睡死在钢琴声中,当你附庸风雅跑去看毕加索画展却一张画也没看懂,你突然意识到了自己的浅薄。没有金刚钻,怎装瓷器逼?没有付出,哪来收获? 装逼没有那么容易,才会特别让人着迷。 你开始认认真真地看书,时间宝贵,你只看经典,抬手就是中华书局、上海古籍,各种珍本善本影印本,横排版的书不看,简体字的书不看。理论学习也不能落下,商务印书馆汉译世界学术名著丛书买它个几十本回来,黄的绿的橙的蓝的,书架上一排彩虹。 你偷偷把手机铃声从《我的歌声里》换成肖邦的夜曲,王菲、张国荣的CD扔掉,你万青,你痛仰,你Pink Floyd,你Guns N’ Roses,你从流行听到爵士,从摇听到古典,别人问起你最喜欢的歌手,你四十五度角仰望星空,眼神虔诚地说出一句:“In Bach We Trust。”念到Bach的ch时上腭抬高,发成“喝哈”轻读加连读的效果,一口纯正的小舌音,德味! 数码单反是不能再用了,现在连旅游团的大叔大妈们都人手一只无敌兔了。相机一定得是胶片的,胶片一定得是120的,拉开你们家冰箱,啥吃的没有,满满的全是胶卷——还必须得是过期的。 国内景点是不能再去了,水乡古镇全是搞一夜情的,西藏全是又酸又穷除了会辞职什么都不会的城市小白领。你背包,你户外,你特立独行无所畏惧,你穿Columbia防水鞋、NorthFace冲锋衣,你用GPS迷了路,在黄山的雨夜里发出求救信息。 你张开双手去生活去爱,你受了伤害,你的小心脏扎满绷带。你痛不欲生,你长夜痛哭过人生,痛完哭完后你顿悟你看透你蜕变,你长了一分智慧叫阅历,你多了一分气质叫成熟。你情感专家,你麻辣教师,你知性姐姐。你豆瓣粉丝几万,微博粉丝几十万,你吊了个有房有车有钱的金龟婿,然后教小姑娘们什么是爱情;你一天到晚不干正事,然后教小朋友们如何治疗拖延症;你做了个朝九晚五的无趣上班族,然后教大学生们别放弃梦想。你读书写字做主妇,你把体内毒素分泌成畅销书。你解答粉丝来信,聆听读者倾述,你款到发货,话到病除。你忙着生产一种叫“正能量”的东西,没有它,你的读者将无以为继,夜夜痛哭。 你研习人类学、社会学、历史学、植物学、建筑学、心理学,你掌握六门外语:英语、法语、德语、日语、西班牙语、铁岭话,你知道康熙他小舅的二大爷哪年死的,你分得清古典柱式认得出欧洲广场,你叫得出路边一花一草的科属名字,你开口M2闭口流通性过剩,你和同好攒了个铅笔经济研究社,研究除了经济学以外的任何东西。 只有门外汉才会在听古典音乐的时候想到什么画面,你谈论的是作品的母题、动机、织体、转调、升降、横向展开的层次与纵向展开的速度。你告诉还在听莫扎特“我不想不想长大”和贝多芬“当当当当”的新手:不妨尝试一下莫扎特和贝多芬的钢琴协奏曲,尤其是莫扎特的K.491和K.595,贝多芬的Op.37和Op.73,精彩绝伦,不输给他们任何的交响乐作品以及歌剧。你对中产气味古典主义模仿者勃拉姆斯充满轻视,对婆婆妈妈的柴可夫斯基只有厌烦。斯特劳斯里面只能听听理查·斯特劳斯,他的艺术歌曲还算有那么点思想性;至于约翰·斯特劳斯,天啊,真不知道这个家伙除开写了几首平庸的圆舞曲外还干了些什么。 你上知天文下知地理,对世界充满好奇心和求知欲,没事就到网上破解谣言。你三十好几找不到对象,去非诚勿扰相亲告诉人家“喜欢TBBT加分哦”,结果“可惜不是你,陪我到最后……”。你在粉丝面前表演Name Dropping的把戏大秀才艺,隔天一觉醒来照旧要加班熬夜做苦力,供房养车还利息。 你有知识有思想有文化有品位,唯独没有钱。你浑身上下散发着狐臭般无法抗拒的人格魅力,唯独没有活人鸟你。 装逼尚未成功,同志仍需努力。 你苦心智、劳筋骨、饿体肤,长夜痛哭算个屁,未曾坐过春运绿皮车者,不足以语人生。你比别人聪明你还比别人勤奋,你睡得比别人晚起得比别人早,你头发一天比一天少,肚子一天比一天大,鸡鸡一天比一天软。“吃得苦中苦,方装逼上逼”,皇天不负苦心装逼的人,你行业老大了,你商界精英了,你社会名流了,Finally, You did it, You DID it! 你实现了“财务上的自由”。你从不像其它男人一样热衷讨论好车,一般你的做法是:买一辆。不过,好车没什么值得炫耀的,车再好能好得过煤老板的?身为“中国知识新贵”的你,更喜欢邀请朋友到家里听自己两百万的Hi-End系统上播放的马勒和布鲁克纳。你听音室里的唱片的总价能买三辆奔驰,你用十三种工具调整自己唱机唱臂的位置,你告诉朋友,玩音响最关键的不是音源,也不是音箱,而是电:水电偏冷,火电偏暖,核电偏硬,你只用来自新疆阿克苏的风电,宽松醇厚。 你从微软跳到谷歌,最后弄个创新工场,做出了市面上最好的安卓盗版装机软件。你是中国的雷布斯,三千块市价的安卓手机你只卖两千块,除了一直缺货外,没什么不好的。 你从英国回来,都不用做学问搞研究,把民主的细节背诵一遍就当上了副教授。你出国就去冰岛,斯堪的纳维亚那块,北欧冰冷的气质才衬你高洁的内心,哦,对了,出门前记得把所有微博删掉。 你是央视主持人,你抑郁了,你又好了,你开着豪车到人民大会堂骂执政党的娘,骂完回台里继续主持读书节目;你血水盐水里泡过,说十句话引用八句名人名言,采访的时候总像只孵蛋的鹌鹑一样看着对方,你内心强大业务出众文笔一流,更要命的是,你还穷,谁敢不喜欢你简直天理难容。 你文学青年,你杂志主编,你说看不懂你小说的人是傻逼,看不懂你小说的人就是傻逼;你说文学有金线,文学就有金线。你眼光高,天底下看得上眼的东西就两样:美玉和鹌鹑。你率性随意,什么都可以将就,但避孕套一定要用最薄的。 你为民主民权民生摇旗呐喊,早年带老婆到天安门广场拍露逼照,直接则对城楼上的人像竖中指,好像很厉害的样子,可惜被查过一次账后就痿了,回来后一副受尽人间辛酸的萌样,像闰土一样四处找粉丝借钱,谁看谁心疼。 你老了,头发胡子花白,你归隐田园,深藏功与名。你心情不好就打个飞的去伦敦喂鸽子,去尼泊尔爬珠穆朗玛峰,心情好的时候就给干女儿做一盘难看但好吃的红烧肉。 你会当凌绝顶,一览众逼小。你再也不需要装逼,因为,你就是逼。 你安然地度过了一生,死后安葬在宁静的故乡,野花轻轻覆盖你的墓碑,上面镌刻的六个大字清晰可辨: “活过,爱过,装过。”

2013-02-25 · 1 min · bystander

你是想读书,还是想读完书?

本文来自知乎,我的看法呢,同意作者的。但不完全是这样。每个人都会建议你把好书读千百遍。改变自己什么的。其一,别人认为的好书不一定能启发你。因此,需要多读书来遇到那本如来神掌,其二。对于非技术书来说,作者的观点是正确的。人文,心理这类书绝对不在多。在于书为了自己的一部分。改变了自己。而技术书无此功能。多读多做才能进步。 本科时,一位很有才华的心理学老师说过的一句话,让我终身难忘: 很多同学喜欢说自己一天能读多少页的书,有些人一天能读50页,有些人能读100页。可是一旦你用“页数”为单位来度量读书这种行为时,从一开始你就错了。 同理,我想对题主说,你用读了多少本书来形容你的读书经历,这种思路,从一开始就错了。 如果你认真读到了书里去,是不会care、甚至会完全忽略掉今天读了多少页,今年读了多少本的;当你沉迷于书中绚烂多彩的世界,当你的观念被翻天覆地地革新,是不会care、甚至会完全忽略掉今天读了多少页,今年读了多少本的。 当我们看手表的时候,常是快等不及了;当我们数书页的时候,常是快看不下去了;当我们念叨看了几本书的时候,常是连书名都记不全了。所以,数多少页、多少本这行为本身,就说明你已经败了。 很多时候,一个人对待知识和思想的态度,就体现在用什么东西去丈量它。 如果有人问一位读书而有大成之人:你因何而脱胎换骨?你因何而涅磐重生?这些问题,他该如何作答?他说:”我因200本书而脱胎换骨,我因1000本书而涅磐重生“,如何? 学而悟道,有时候一本书就够了,有时候一万本都不够。这取决于,你读了什么书,更重要的是,你是如何读的:你有没有读进去把自己活埋在里面,又有没有读出来敲打出一个新的自己。 有些书,是一代宗师级的人物,把他们毕生的智慧熔铸在一本书里面;有些书,是一个领域的开疆拓土之作,从一片混沌中劈出一个新世界;有些书,是一个领域的集大成之作,观点纷繁,气象万千;有些书,如盗梦空间一般有几层境界,你多读一遍就多梦到一层。对这些书,你若只是都当成那两百分之一,花上一个星期匆匆读完,读后即扔,只摘下几条金句供日后泡妞之用,难道这就算读过了吗? 有些书,要用心血去读;有些书,要用足够的经历去读;有些书,是要绞尽最后一粒脑细胞去读;有些书,是一辈子都读不完读不透…… 看书的方法,不仅要看作者写了什么(一层),还要琢磨文字背后的意蕴,那些弦外之音(二层),还要去思考作者为什么要写这些、要这样写(三层),还要去想想看作者用了什么样的框架和策略在组织这本书,以及在各种细微处又用了什么样的方法和技巧(四层),当然更重要的是,以上的这些分析对你自己的现实和精神世界能带来什么样的帮助,是否能启发你、引导你、改变你……(五层) 于是,一本值得都烂读透的书,就需要你去读五遍、十遍去读烂读透它。 于是乎,和很多人的答案相反:所谓200本,你不是读少了,而是读多了、读水了、读浅了! 其实你的状态一点都不特殊,你和许多人一样,以为自己在读书,其实是在集邮。 最后,建议你重新拿起一本你最崇敬的书,换一种方式,再读一遍、两遍、三遍……

2013-02-21 · 1 min · bystander

C# 基础知识系列文章索引

清理GR的加星标项目。分享来自博客园 zhili 的C#基础系列文章。 C#基础知识系列终于告了一个段落了, 本系列中主要和大家介绍了C#1.0到C# 4.0中一些重要的特性,刚开始写这个专题的初衷主要是我觉得掌握了C#这些基础知识之后,对于其他任何的一门语言都是差不多的,这样可以提高朋友们对其他语言的掌握,以及可以让大家更加迅速地掌握.NET的新特性, 并且相信这个系列对于找工作的朋友也是很有帮助的,因为很多公司面试都很看重基础知识是否扎实,是否对C#有一个全面的认识和理解,所以很多公司面试都会问到一些C#基础概念的问题,例如,经常面试会问:你是如何理解委托的,如何理解匿名函数等问题。 然而这个系列中并没有介绍COM互操作性的内容以及.Net 4.5中的一些新特性,所以后面将会对这两个方面的内容进行补充,由于这个系列托的太久了(大概也有3个月吧),所以就先告一段落的,后面将会带来.NET互操作性系列的介绍。下面就为这个系列文章做一个索引,方便大家收藏和查找。 C#基础知识系列索引 C#1.0 1. 深入解析委托——C#中为什么要引入委托 2. 委托本质论 3. 如何用委托包装多个方法——委托链 4. 事件揭秘 5. 当点击按钮时触发Click事件背后发生的事情 C# 2.0 6. 泛型基础篇——为什么引入泛型 7. 泛型深入理解(一) 8. 泛型深入理解(二) 9. 深入理解泛型可变性 10. 全面解析可空类型 11. 匿名方法解析 12. 迭代器 C# 3.0 13. 全面解析对象集合初始化器、匿名类型和隐式类型 14. 深入理解Lambda表达式 15. 全面解析扩展方法 16. Linq介绍 C# 4.0 17. 深入理解动态类型 从C#的所有特性可以看出,C#中提出的每个新特性都是建立在原来特性的基础上,并且是对原来特性的一个改进, 做这么多的改进主要是为了方便开发人员更好地使用C#来编写程序,是让我们写更少的代码来实现我们的程序,把一些额外的工作交给编译器去帮我们做,也就是很多人说微软很喜欢搞语法糖的意思(语法糖即让编译器帮我们做一些额外的事情,减少开发人员所考虑的事情,使开发人员放更多的精力放在系统的业务逻辑上面。),大家从C# 3中提出的特性中可以很好的看出这点(指的是玩语法糖),C#3中几乎大部分特性都是C#提供的语法糖,从CLR层面来说(指的是增加新的IL指令),C# 3并没有更新什么,C# 4中提出的动态类型又是建立在表达式树的基础上,包括Linq也是建立在表达式树的基础上,所以每个特性都是层层递进的一个关系。相信C#后面提出的新特性将会更加方便我们开发程序,感觉所有语言的一个统一的思想都是——写更少的代码,却可以做更多的事情。但是我们不能仅仅停住于知道怎么使用它,我们还应该深入研究它的背后的故事,知道新特性是如何实现的和原理。用一句说就是——我们要知其然之气所以然,学习知识应该抱着刨根问底的态度去学习,相信这样的学习方式也可以让大家不感到心虚,写出的程序将会更加自信。

2013-01-27 · 1 min · bystander

不要变成你讨厌的人,面目可憎

本文来自xjp的碎碎念,我很喜欢的一个博主。博客已被伟大的GFW屏蔽。和文章的主题类似,我有时候会在G+上会纠正一些人的谣言,并且给出澄清,可是,往往效果不大。我的态度很简单,你要反对一样东西,请你不要是那样的东西。或用那样的东西去反对。不要为任何主义所迷惑,你要做好一个人。 今天看到一篇来自《新京报》的报道,称时事评论员@周筱赟爆料称,根据铁道部的两份采购合同显示,推测铁道部12306订票网站实际投入已经超过5亿元,而不是之前曾披露的3.2亿元。 首先我很赞同周筱赟所做的事情,在国内目前民众获取信息渠道有限的情况下,有这样的热心人士去披露政府部门行政行为中值得讨论的部分,对于整个社会的公正与透明都有极大的推动作用。 但我注意的是另一群人,他们典型的回复是: 1、花5个多亿做成这么垃圾的网站,铁道部公然贪污多少钱?臭不要脸的!二逼的网站和系统归功于傻逼造就! 2、卧槽,里面有4.5亿是贪污款吧 3、习总说反腐,最大的蛀虫在这里,敢反否? 4、3亿建站为什么这些年一直没有工商部去追查12306的贪污问题。你懂我懂大家懂。 5、中央纪委、监察部和各级纪检监察机关要加大检查监督力度,执好纪、问好责、把好关。 6、太极集团是做医药的呀,怎么也搞起软件来了。我想说,有没经验都不要紧,要紧的是有钱。咱就撒都能做! 7、五亿······· 用了个500的模版 月薪5000水平的制作团队 8、三億各單位部門宣傳費,一億三公支出,五千萬采購合同草擬費用,四千萬給媒體掩口費, 九百九十萬信息產業部備案費用,最後十萬才是網站制作費用… 這五億基本上都使對了地方,沒有錯啊! 其它的评论都是诸如此类,某一些理性的评论都被深埋其中。 我不是铁道部、太极的任何一方,我不能拍着胸脯说这些问题一定不存在,但真正让我恐惧的是,有大量网友没有认真去研究文章的内容与事实,只是单纯下意识地做出了判断,然后开喷。 我们仔细去看我们讨厌的那些五毛与政府宣传部门,他们的日常做法都是: 1、戴帽子 2、站在道德高度,说正确的废话 3、自说自话,完全不管别人在说什么 4、预设立场 5、我永远是对的,反对我的都是错的 6、你们站在人民的对立面 然后有一个微博网友在评论里跟我说,他只需要一万元就能够搞定12306的网站外包开发。听到这样的话,我不由地一阵颤抖,如果这话来自一名所谓的业内人士,那我真的不知道应该怎么说了。 引用某网友的评论: 从专业角度来说,投入不算多,只是透明度不够,民众才疑惑!全国各地还需要再多些大型机房,才能满足高峰期分流排队和并发操作! 我的看法是,不否认铁道部的开发、架构设计存在一定问题,如果没有实际的大型系统设计经验的团队,可能会造成很多理论与实际脱节问题,事实上今年的12306已经比去年好太多了,他们也在吸取教训。当然,我也赞成他们向互联网公司取经,吸收现有经验。 建议大家不要单纯喷,5亿这个数字可能略高,但比起数千万的静态网站好多了,至于具体审计是国家审计局的事情,我支持惩处贪腐。做一个覆盖数千万用户,承受刷票插件5秒一次的并发,服务器、带宽、配套都是成本。而售票数字化几乎是必经之路,铁道部走出这一步是好的,买不到票有基础运力的问题,跟网络售票无关。 不要一叶障目,买不到票人人都会烦心,诚然铁道部是一个不错的发泄口,但如果只是为了喷而喷。借用我之前的一句话,铁道部如何做你们才满意?

2013-01-23 · 1 min · bystander

图的遍历(C#)

讲的非常好的一篇文章。感谢abatei,直接收藏分享之。 图的存储结构 图的存储结构除了要存储图中各个顶点的本身的信息外,同时还要存储顶点与顶点之间的所有关系(边的信息),因此,图的结构比较复杂,很难以数据元素在存储区中的物理位置来表示元素之间的关系,但也正是由于其任意的特性,故物理表示方法很多。常用的图的存储结构有邻接矩阵、邻接表、十字链表和邻接多重表。 8.2.1 邻接矩阵表示法 对于一个具有n个顶点的图,可以使用n*n的矩阵(二维数组)来表示它们间的邻接关系。图8.10和图8.11中,矩阵A(i,j)=1表示图中存在一条边(Vi,Vj),而A(i,j)=0表示图中不存在边(Vi,Vj)。实际编程时,当图为不带权图时,可以在二维数组中存放bool值,A(i,j)=true表示存在边(Vi,Vj),A(i,j)=false表示不存在边(Vi,Vj);当图带权值时,则可以直接在二维数组中存放权值,A(i,j)=null表示不存在边(Vi,Vj)。 图8.10所示的是无向图的邻接矩阵表示法,可以观察到,矩阵延对角线对称,即A(i,j)= A(j,i)。无向图邻接矩阵的第i行或第i列非零元素的个数其实就是第i个顶点的度。这表示无向图邻接矩阵存在一定的数据冗余。 图8.11所示的是有向图邻接矩阵表示法,矩阵并不延对角线对称,A(i,j)=1表示顶点Vi邻接到顶点Vj;A(j,i)=1则表示顶点Vi邻接自顶点Vj。两者并不象无向图邻接矩阵那样表示相同的意思。有向图邻接矩阵的第i行非零元素的个数其实就是第i个顶点的出度,而第i列非零元素的个数是第i个顶点的入度,即第i个顶点的度是第i行和第i列非零元素个数之和。 由于存在n个顶点的图需要n2个数组元素进行存储,当图为稀疏图时,使用邻接矩阵存储方法将出现大量零元素,照成极大地空间浪费,这时应该使用邻接表表示法存储图中的数据。 8.2.2 邻接表表示法 图的邻接矩阵存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的存储结构。邻接表由表头结点和表结点两部分组成,其中图中每个顶点均对应一个存储在数组中的表头结点。如这个表头结点所对应的顶点存在相邻顶点,则把相邻顶点依次存放于表头结点所指向的单向链表中。如图8.12所示,表结点存放的是邻接顶点在数组中的索引。对于无向图来说,使用邻接表进行存储也会出现数据冗余,表头结点A所指链表中存在一个指向C的表结点的同时,表头结点C所指链表也会存在一个指向A的表结点。 有向图的邻接表有出边表和入边表(又称逆邻接表)之分。出边表的表结点存放的是从表头结点出发的有向边所指的尾顶点;入边表的表结点存放的则是指向表头结点的某个头顶点。如图8.13所示,图(b)和(c)分别为有向图(a)的出边表和入边表。 以上所讨论的邻接表所表示的都是不带权的图,如果要表示带权图,可以在表结点中增加一个存放权的字段,其效果如图8.14所示。 【注意】:观察图8.14可以发现,当删除存储表头结点的数组中的某一元素,有可能使部分表头结点索引号的改变,从而导致大面积修改表结点的情况发生。可以在表结点中直接存放指向表头结点的指针以解决这个问题(在链表中存放类实例即是存放指针,但必须要保证表头结点是类而不是结构体)。在实际创建邻接表时,甚至可以使用链表代替数组存放表头结点或使用顺序表存代替链表存放表结点。对所学的数据结构知识应当根据实际情况及所使用语言的特点灵活应用,切不可生搬硬套。 【例8-1 AdjacencyList.cs】图的邻接表存储结构 using System; using System.Collections.Generic; public class AdjacencyList<T> { List<Vertex<T>> items; //图的顶点集合 public AdjacencyList() : this(10) { } //构造方法 public AdjacencyList(int capacity) //指定容量的构造方法 { items = new List<Vertex<T>>(capacity); } public void AddVertex(T item) //添加一个顶点 { //不允许插入重复值 if (Contains(item)) { throw new ArgumentException("插入了重复顶点!"); } items.Add(new Vertex<T>(item)); } public void AddEdge(T from, T to) //添加无向边 { Vertex<T> fromVer = Find(from); //找到起始顶点 if (fromVer == null) { throw new ArgumentException("头顶点并不存在!"); } Vertex<T> toVer = Find(to); //找到结束顶点 if (toVer == null) { throw new ArgumentException("尾顶点并不存在!"); } //无向边的两个顶点都需记录边信息 AddDirectedEdge(fromVer, toVer); AddDirectedEdge(toVer, fromVer); } public bool Contains(T item) //查找图中是否包含某项 { foreach (Vertex<T> v in items) { if (v.data.Equals(item)) { return true; } } return false; } private Vertex<T> Find(T item) //查找指定项并返回 { foreach (Vertex<T> v in items) { if (v.data.Equals(item)) { return v; } } return null; } //添加有向边 private void AddDirectedEdge(Vertex<T> fromVer, Vertex<T> toVer) { if (fromVer.firstEdge == null) //无邻接点时 { fromVer.firstEdge = new Node(toVer); } else { Node tmp, node = fromVer.firstEdge; do { //检查是否添加了重复边 if (node.adjvex.data.Equals(toVer.data)) { throw new ArgumentException("添加了重复的边!"); } tmp = node; node = node.next; } while (node != null); tmp.next = new Node(toVer); //添加到链表未尾 } } public override string ToString() //仅用于测试 { //打印每个节点和它的邻接点 string s = string.Empty; foreach (Vertex<T> v in items) { s += v.data.ToString() + ":"; if (v.firstEdge != null) { Node tmp = v.firstEdge; while (tmp != null) { s += tmp.adjvex.data.ToString(); tmp = tmp.next; } } s += "\r\n"; } return s; } //嵌套类,表示链表中的表结点 public class Node { public Vertex<T> adjvex; //邻接点域 public Node next; //下一个邻接点指针域 public Node(Vertex<T> value) { adjvex = value; } } //嵌套类,表示存放于数组中的表头结点 public class Vertex<TValue> { public TValue data; //数据 public Node firstEdge; //邻接点链表头指针 public Boolean visited; //访问标志,遍历时使用 public Vertex(TValue value) //构造方法 { data = value; } } } AdjacencyList<T>类使用泛型实现了图的邻接表存储结构。它包含两个内部类,Vertex<Tvalue>类(109~118行代码)用于表示一个表头结点,Node类(99~107)则用于表示表结点,其中存放着邻接点信息,用来表示表头结点的某条边。多个Node用next指针相连形成一个单链表,表头指针为Vertex类的firstEdge成员,表头结点所代表的顶点的所有边的信息均包含在链表内,其结构如图8.12所示。所不同之处在于: l Vertex类中包含了一个visited成员,它的作用是在图遍历时标识当前节点是否被访问过,这一点在稍后会讲到。 ...

2013-01-06 · 4 min · bystander

从相亲延伸出的婚恋意义

相亲现在挺火的。。 文章来自xiuloveshow 老妈说:“妈希望你找个家庭条件好点儿的,以后少吃苦,别走老妈的路!”。老爸说:“老爸没别的要求,就希望你找个家庭和睦的,这样的家庭教育出来的子女各方面都不会差到哪儿去,家庭条件爸不是特别看重”。老哥说:”这么大个村儿就你一个单身了,小心被剩下!“。朋友说:”咋总是忙着给别人介绍,赶紧把自己推销出去再说!”我说:我想找个在我不开心的时候,什么都不用做,就静静的呆在我旁边,即使是看着我哭也好。 三毛说:看得不顺眼的话,千万富翁也不嫁;看得中意,亿万富翁也嫁。张小娴说:你走,我不送你。你来,无论多大风多大雨,我都要去接你。史铁生说:爱情就是在追求喜欢和爱,这二者同时达到便是爱的理想状态,爱就是一种理想。我说:嫁与不嫁,送与不送,喜欢与爱,我只想用我自己的方式去做人生最重要的选择,这种东西没有参数值,用完一次便没有了! 之前为凑热闹跟一老乡去相亲,相亲的目标性特别强,大家都冲着结婚去的,他们从来不会凭感觉去判断这个人是否是自己中意的人。对方开口便问月工资多少?家里买房没?而男方像是履行一项任务或是已经习惯了这样一套开场白,还未等女方开口,从爷爷的退休工资开始说到自己的工资水平。这其中我没有听到任何一句关于心理沟通的话题,全是围绕物质展开的激烈对白。我有点儿后悔跟她去了,这让我看到了现代人最“真实”的婚恋观,我有些后怕! 后来,我问老乡对男方的印象怎么样。她毫无掩饰的说:“家庭条件还可以,人也挺老实,没更好的就成了“”你到底想找个什么样的?”因为我不确定她的方向,作为女性擅有的八卦心态,我还是忍不住问了。“没什么特别的要求,只要有房,工资还可以,父母不要我们负担就好了。至于感情可以慢慢培养的!”她的表情很轻松,像是在述说一件很平常的事。我有些失望,像是在风和日丽的宁静之夏突然袭来的狂风暴雨。 我想如果是我,我不一定要多大的房,多高的工资。物质和精神两个层面,我永远把精神排第一。两个人每天围绕着柴米油盐酱醋茶,围绕着生活中的琐琐碎碎,内心的苦闷却苦于找不到人述说。彼此不懂对方的世界,不懂爱好为何物,不懂兴趣乃何价,这样的恋爱,这样的婚姻多么的恐怖。我不希望半夜醒来向着电台诉说悲伤,乞求听众收容我的眼泪! 如史铁生所说,爱乃一种理想。即为理想凭努力不一定能达到。喜欢一个人和爱一个人是完全不同的两种境界,喜欢一个人,当激情用尽之时,就只有靠着那张印着两个人照片的结婚证来维持彼此的关系,这种关系完全靠法律来维系。爱一个人,当你生老病死,激情褪去之后依然想着跟你白头到老。这些恐怕是一张房产证换不来的细水长流般的幸福。关于物质和精神,关于爱和不爱。物质已经主导了我们的价值取向,我们不再自已。物质可以让人放弃精神随时转变自身角色,爱也会因为物质变得不爱了。 我已经很久没有听到关于爱的序曲了。物质可以这样轻易的扭曲爱的意义,我们追求的幸福到底为何物? 当年因物质放弃了最宝贵的东西,最稀有的精神支撑,当你得到了你所有物质的满足,物质填充了你的欲望,你能坦然的对自己说你很幸福?当你开着宝马,驾着良驹,住着豪宅,驱着游艇,是否我们就幸福了? 我努力学习,认真工作,享受音乐,沉侵阅读,爱好写作,喜欢画画,偶尔给老爸老妈给好朋友煲电话粥!我不依赖任何人,我不向任何人屈服!面对机会我不放弃,面对感情拿得起放得下,面对亲情我感动无疑!喜欢倾听,喜欢跟人交往,喜欢跟老人交谈…。消费过后还有金钱结余,偶尔向文字倾吐心声。继续等待着那个可以说话的人出现。自创的理想也可以很诗意! 我希望的婚恋观如同我的生活般平静,如果你能走进我的世界,如果你懂我的世界,我们可以无话不谈。但似乎这变成了一种奢侈,我们就是简单的无话可说!你在你的世界游历,我在我的世界漫步,踽踽独行有何不可!

2012-12-10 · 1 min · bystander

从平庸到幸福

一篇来自左岸的文章,可以读一读。只是不知道有几人能够认认真真读完。文予有缘人。随意吧。 作者:文刀 当一件事情刚开始时,我们总会偏向于好的预期,因为这样我们才会去行动。当事情在不断的进展时,外界的因素(客观条件)总会引起我们主观上的波动,时而信心满满,时而跌入谷底。然而事情总是要有个结果的,在这样一种偏向反复,时好时坏的自我预期中,有些人选择了放弃,有些了继续了坚持。放弃,或许是因为有更明智的选择,又或许已经没戏了。坚持,或许是因为没有了退路,又或许是总体偏向于好的预期。不管怎么样,预期总会无穷的趋于向现实要一个结果。而关于结果是正无穷还是负无穷,我们却无法量化,因为做每一个选择,特别是人生选择时,其机会成本(选择成本)是无法量化的。读三年研与先工作三年是难以在同一个人身上同时进行,是不可逆的单一选择,也就无法真正理性地去决定。而我们之所以能够去决定,大部分取决于我们自己与身边人的偏好。所幸,我们都能也都应该看到,做如此的选择并没有犯下方向上的错误。总体上这条路上,我们的步伐是朝前迈的。我们的学识,我们的视野都在增进,然而,要问我们是否就此告别了平庸,是否走向了幸福与快乐,这却是无关的。 知识的增长并不意味着个人道德水平的提高或是人个涵养的提升。在物欲横流的社会中,总能听到那么多关于知识分子的道德丑闻与民工的善行。平庸并不是表明人的身份,而是表明个人的如何从众。所以,对于钱权与名利的追求,恰恰是平庸之举。再看看幸福,知识的提高会带来更高的视野,也可能会导致更多的欲求。有限理性的欲求会是生活源源不断的动力,带来的实现会成为幸福的体验。纵然如此,这也只是一时的,更多的幸福并不在于我们要不断去满足,而是要学会去知足,学会去感激,去给予。所以,幸福是一种认知状态,是一种心境。 再来设想一下,当我们把梦想比作一种财富的实现,我们就会发现。当一阶段内的目标实现了,我们就会寻找下一阶段的目标,然后再去实现它。这样的生活是富有挑战与方向感的,也就是有意义的,这种不断的自在追求本身会是幸福的。如此,追求财富就如梦想一般无可厚非(可能财富就是梦想),但如果我们无法认清财富存在的更多效用,我们就免不了坠入平庸,欲壑难填,我们又何来幸福。一千万在当下社会足以自在一把,然而却已然超出了本身的欲求(理性的),那么就应该拿出钱来做好事,给予会让自己更为幸福,因为我们可以就此看到更多幸福的存在。 即使把幸福看作是一种认知状态,一种心境,但其也应该是我们毕生的追求。以前,我们生活无忧无虑,饭来张口衣来伸手,但我们都明白,那也只是一时的,是建立在亲人的血汗之上的。如今,我们走出校园,参加工作,就要懂得去承担相应的去给予身边人力所能及的照顾。从接受到享受再到给予最终还是到享受,这一过程就是认知状态的提升,就是对幸福的追求。幸福是学会接受与学会给予的过程。心境是个什么概念,又要如何提升呢?我们都清楚,在现世中不存在世外桃源,田园牧歌也不太现实。那么,我们就要学会把这种不可能变成可能带到生活中,其唯一的途径就是提升我们的心境。而这并不是说,我们要在现实生活中学会自欺欺人,而是把这样一份浪漫主义的情怀赋予到真实中,做到真、性、情。对于生活中的真真假假,我们要学会看到,看透,看淡;对于生活中的点点滴滴,我们要学会感激,感怀,感悟;还有对于他人,对于自己,也要力求做到真与善,从而现实幸福的美感。如此,心境的提高是一个领悟与缓慢提升的过程。幸福是一生的追求。 当我们意识到追求梦想更深的是在追求幸福时,我们又深深的坚信着幸福是一种心境,那我们何不学会像相信幸福总是存在一样去相信梦想会实现呢,我们又何必多去假定另一种不好的预期存在呢。既然我们已经走在路上了,在正确追求幸福的路上呢,那我们何不去幸福呢 ?相对于冷漠的大众,我深信,时时能感到幸福,时时有梦想,为断去追求幸福的人,注定是个不平庸的人。

2012-12-05 · 1 min · bystander

解决win8无法上网的问题

昨天晚上@虎振兴同学装了win8.。结果悲剧了。症状为连接宽带可以连接上。上qq也正常。但是。只要打开网页。就会自动断网。再连接就会提示651错误了。网上大多说是驱动不兼容。但是解决的方法大部分是不对的。下面结合网上的给大家说一说。。 网卡驱动目测是都是美满公司,也就是Marvell 的Yukon系列网卡驱动的问题。首先下载一个旧版本的驱动(32位下载/64位下载) 然后按下图操作,第一步是打开计算机-管理。。各种姿势只要打开了计算机管理就可以了。 在这里稍微记一下这个名字。Marvell Yukon 88exxxxx PCI-E Fast Ethernet.. 找到网络适配器,右键更新驱动程序。 注意记下兼容的网卡。名字和第二步的差不多的那个,点击从磁盘安装,选择下载后驱动的解压的安装文件,如图 到这一步以后,点击打开,可能会出现一个驱动列表。这是时候选择一个和兼容列表名字一样的。88e这部分不一样。如果找不到,也可以找类似的,比如途中给出的后两位是39.我装的是40也没问题。这个是驱动的历史版本。然后就可以了 最后。提醒各位童鞋。win8整体还是很不错的。不过呢。对于我来说。metro界面和正常的界面的傻傻分不清楚的模式。令我很是蛋疼。。所以暂时没有考虑换到win8.。。

2012-11-21 · 1 min · bystander