算法题目-C#

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.给定一个已经排序的整数数组,要求把这个数组中重复的元素删除掉int[]Foo(int[]list)2.编程实现将一个英文句子中的单词顺序翻转,同时切换字母大小写(不考虑标点)。char*Reverse(char*str)3.比如给定句子:Howareyou则输出YOUAREhOW要求:不使用系统的分割字符串函数,单词之间和句子前后有可能有一个或者多个空格,不能丢失这些空格4.实现函数Fun(intn)来求质数的和,要求不使用开方函数。例如Fun(7)=2+3+5+7+11+13+17=585.给定两个已经排序好的数组,要求编程实现合并成一个已经排序好的数组6.求两个数的最大公约数和最小公倍数7.判断一个单向链表是否有环boolIsLoop(Listl)8.请写出二叉树前序遍历算法9.根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写namespacetest{publicdelegatevoidOnDBOperate();publicclassUserControlBase:System.Windows.Forms.UserControl{publiceventOnDBOperateOnNew;privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse){if(e.Button.Equals(BtnNew)){//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。}}}}答:10.已知二叉搜索树中的结点类型用BinTreeNode表示,被定义为:structBinTreeNode{ElemTypedata;BinTreeNode*leftChild,*rightChild;};其中data为结点值域,leftChild和rightChild分别为指向左、右子女结点的指针域。假定具有BinTreeNode*类型的指针参数BST指向一棵二叉搜索树的根结点,试根据下面的函数声明编写一个非递归算法,从BST树中查找出具有x参数值的结点,若查找成功则返回该结点的地址,否则返回NULL。BinTreeNode*Find(BinTreeNode*BST,ElemType&x);11.已知first为单链表(structLinkNode{ElemTypedata;LinkNode*link;};)的表头指针,链表中存储的都是整型数据,试写出实现下列运算的递归算法:(1)求链表中的最大整数。(2)求链表的结点个数。12.请在SQLServer中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容需要保存),如果我想查询某一职位及以上的所有职位,用一个存储过程来实现,你有什么思路?1.publicint[]Foo(int[]list){ArrayListarr=newArrayList();for(inti=0;ilist.Length-1;i++){if(list[i]!=list[i+1]){arr.Add(list[i]);}}arr.Add(list[list.Length-1]);int[]getarr=newint[arr.Count];for(inti=0;iarr.Count;i++){getarr[i]=Convert.ToInt32(arr[i]);}returngetarr;}2.答案同第3题3.publicvoidfanzuan(){stringa=HowareYou?;string[]dest=newstring[a.Length];boolisSpace=a[0]=='';intcurdest=0;for(inti=0;ia.Length;i++){intasc=a[i];if(asc==''){if(isSpace)dest[curdest]+=;elsedest[++curdest]+=;isSpace=true;}else{if(asc'A'&&asc'Z')asc+=32;elseif(asc'a'&&asc'z')asc-=32;if(isSpace)dest[++curdest]+=((char)asc).ToString();elsedest[curdest]+=((char)asc).ToString();isSpace=false;}}for(inti=dest.Length-1;i-1;i--){if(dest[i]!=null)Console.Write(dest[i]);}Console.ReadLine();}4.publicintGetSum(intn){intg=0;intsum=0;boolh=true;for(inti=2;;i++){h=true;for(intj=2;j=i;j++){if((i%j==0)&&(j!=i)){h=false;}}if(h){sum=sum+i;g++;}if(n==g){returnsum;}}}5.publicint[]getarr(int[]a,int[]b){int[]c=newint[a.Length+b.Length];inti=0;intj=0;while(ia.Length){while(jb.Length){if(a[i]b[j]){c[i+j]=a[i];i++;break;}else{c[i+j]=b[j];j++;}}}returnc;}6.publicintGetGongYue(inta,intb){intc=0;if(a=b)c=b;elsec=a;for(inti=c;i0;i--){if((a%i==0)&&(b%i==0)){c=i;break;}}returnc;}publicintGetGongBei(inta,intb){intc=0;if(a=b)c=a;elsec=b;for(inti=c;i(a*b);i++){if((i%a==0)&&(i%b==0)){c=i;break;}}returnc;}7.boolisLoop(Listl){if(l==null)returnfalse;lists=l.next;while(l!=null&&s!=null&&s.next!=null){if(l==s)returntrue;l=l.next;s=s.next.next;}returnfalse;}8.namespace_叉树{classProgram{staticvoidMain(string[]args){BinaryTreeb=newBinaryTree();Nodenode=newNode(5);b.GenerateTree(node);node=newNode(13);b.GenerateTree(node);node=newNode(6);b.GenerateTree(node);node=newNode(26);b.GenerateTree(node);node=newNode(7);b.GenerateTree(node);b.Show();Console.ReadLine();}}}classNode{intn;publicNode(intx)//构造函数初始化数据域是传入的数{n=x;}publicNodeLeft;//创建了左指针publicNodeRight;//创建了右指针publicvoidInsert(Nodenode)//插入的选择大在右小在左{if(node.nthis.n)//比较数据域的大小{if(this.Right==null)this.Right=node;elsethis.Right.Insert(node);}else{if(this.Left==null){this.Left=node;}else{this.Left.Insert(node);}}}//递归publicvoidShow(){Console.WriteLine(n);}}classBinaryTree{Noderoot;publicvoidGenerateTree(Nodenode){if(root==null){root=node;return;}root.Insert(node);}publicvoidShowInOrder(Nodenode){if(node==null)return;node.Show();ShowInOrder(node.Left);ShowInOrder(node.Right);}publicvoidShow(){ShowInOrder(root);}}9.namespacetest{publicdelegatevoidOnDBOperate();publicclassUserControlBase:System.Windows.Forms.UserControl{publiceventOnDBOperateOnNew;privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse){if(e.Button.Equals(BtnNew)){//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。if(this.OnNew!=null)this.OnNew();}}}}10.BinTreeNode*Find(BinTreeNode*BST,ElemType&x){while(BST!=NULL){if(x==BST-data)returnBST;//成功返回2分BRelseif(xBST-data)BST=BST-leftChild;elseBST=BST-rightChild;}returnNULL;}11.(1)求链表中的最大整数//4分intMax(LinkNode*first){ifirst(first-link==NULL)returnfirst-data;inttemp=Max(first-link);return(first-datatemp?Returnfirst-data:temp);}(2)求链表的结点个数//4分intNum(LinkNode*first){ifirst(first==NULL)return0;return1+Num(first-link);}12.设计表:t_PositionParentIDInt上级职位IDPositionIDInt职位IDPositionNameNvarchar(255)职位名称设计存储过程sp_GetPositionsCREATEPROCEDUREsp_GetPositions@PositionIDIntASdeclare@ParentPositionIDIntDeclare@tPositionsTable(ParentPositionIDInt,PositionIDInt,PositionNamenvarchar(255))IfExists(SelectPositionIDFromt_PositionWherePositionID=@PositionID)Begin--GotIt,UseItInsert@tPositions(ParentPositionID,PositionID,PositionName)Select(ParentPositionID,PositionID,PositionNameFromt_PositionWherePositionID=@PositionIDSet@ParentPositionID=@PositionIDWhile(1=1)BeginSelect@ParentPositionID=ParentPositionIDFromt_PositionWherePosition

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功