- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
/henryhu/archive/2010/02/20/1669939.html微软的22道数据结构算法面试题(含答案) 1、反转一个链表。循环算法。??? 1 ? ? List ? reverse(List ? l) ? { 2 ? ? if(!l) ? return ? l; 3 ? ? ? ? list ? cur ? = ? l.next; 4 ? ? list ? pre ? = ? l; 5 ? ? list ? tmp; 6 ? ? pre.next ? = ? null; 7 ? ? while ? ( ? cur ? ) ? { 8 ? ? ? ? tmp ? = ? cur; 9 ? ? ? ? cur ? = ? cur.next; 10 ? ? ? ? tmp.next ? = ? pre 11 ? ? ? ? pre ? = ? tmp; 12 ? ? } 13 ? ? return ? tmp; 14 ? }? 2、反转一个链表。递归算法。?? 1 ? ? List ? resverse(list ? l) ? { 2 ? ? if(!l ? || ? !l.next) ? return ? l; 3 4 ? ? ? ? List ? n ? = ? reverse(l.next); 5 ? ? ? ? l.next.next ? = ? l; 6 ? ? ? ? l.next=null; 7 ? ? } 8 ? ? return ? n; 9 ? }?? 3、广度优先遍历二叉树。? 1 ? ? void ? BST(Tree ? t) ? { 2 ? ? Queue ? q ? = ? new ? Queue(); 3 ? ? q.enque(t); 4 ? ? Tree ? t ? = ? q.deque(); 5 ? ? while(t) ? { 6 ? ? ? ? System.out.println(t.value); 7 ? ? ? ? q.enque(t.left); 8 ? ? ? ? q.enque(t.right); 9 ? ? ? ? t ? = ? q.deque(); 10 ? ? } 11 ? } ---------------------- 1class ? Node ? { 2 ? ? Tree ? t; 3 ? ? Node ? next; 4 ? } 5class ? Queue ? { 6 ? ? Node ? head; 7 ? ? Node ? tail; 8 ? ? public ? void ? enque(Tree ? t){ 9 ? ? ? ? Node ? n ? = ? new ? Node(); 10 ? ? ? ? n.t ? = ? t; 11 ? ? ? ? if(!tail){ 12 ? ? ? ? ? ? tail ? = ? head ? = ? n; 13 ? ? ? ? } ? else ? { 14 ? ? ? ? tail.next ? = ? n; 15 ? ? ? ? tail ? = ? n; 16 ? ? ? ? } 17 ? ? } 18 ? ? public ? Tree ? deque() ? { 19 ? ? ? ? if ? (!head) ? { 20 ? ? ? ? ? ? ? ? return ? null; 21 ? ? ? ? } ? else ? { 22 ? ? ? ? Node ? n ? = ? head; 23 ? ? ? ? head ? = ? head.next; 24 ? ? ? return ? n.t; 25 ? ? ? ? } 26}??4、输出一个字符串所有排列。注意有重复字符。?? 1char[] ? p; 2void ? perm(char ? s[], ? int ? i, ? int ? n){ 3 ? int ? j; 4 ? char ? temp; 5 ? for(j=0;jn;++j){ 6 ? ? if(j!=0 s[j]==s[j-1]); 7 ? ? elseif(s[j]!=@){ 8 ? ? ? p[i]=s[j]; 9 ? ? ? s[j]=@; 10 ? ? ? if(i==n-1){ 11 ? ? ? ? p[n]=\0; 12 ? ? ? ? printf(%s, ? p); 13 ? ? ? }else{ 14 ? ? ? ? perm(s,i+1,n); 15 ? ? ? } 16 ? ? ? s[j]=p[i]; 17 ? ? } 18 ? } 19} -------------------------- 1void ? main(
文档评论(0)