数据结构与算法(C#实现)系列---N叉树(二)(转)
数据结构与算法(C#实现)系列---N叉树(二) Heavenkiller(原创)public override uint Degree { get { return this.degree; } } //------------------------------------------------------------------------------------- //只用于空树结点 public virtual void AttachKey(object _obj) { if(!IsEmpty())
数据结构与算法(C#实现)系列---二叉树(转)
using System;using System.Collections;namespace DataStructure{ /// <summary> /// BinaryTree 的摘要说明。 /// </summary> public class BinaryTree:NaryTree { //构造二叉空树 public BinaryTree():base(2) { // // TODO: 在此处添加构造函数逻辑 // } public BinaryTree(object _obj):base(2,_obj) {}//------------------------------------------------------------------ protected override
数据结构与算法(C#实现)系列---二叉堆(转)
数据结构与算法(C#实现)系列---二叉堆(数组实现)using System;using System.Collections;namespace DataStructure{ /// <summary> /// BinaryHeap 的摘要说明。-------二叉堆(基于数组的实现) /// </summary> public class BinaryHeap:IPriorityQueue { protected ArrayList array; //建立一个最多容纳_length个对象的空二叉堆 public BinaryHeap(uint _length) { // // TODO: 在此处添加构造函数逻辑 // array
C#冒泡算法(转)
参加多次笔试,居然有几次都考到了冒泡算法,一次是C#版的填空,一次是javascript版的全部写出。 虽然每次都凭着我对冒泡法的理解给弄出来的,但是多多少少与标准模式有点差别,在网上搜了一下关于C#版的冒泡算法,居然也没有一个象样的,自己对照算法模式认真写了一个C#版的,已经测试成功。 同时附上【冒泡排序动画演示】 public void BubbleSort(int[] R) { int i,j,temp; //交换标志 bool exchange; //最多做R.Length-1趟排序 for(i=0; i<R.Length; i++) { //本趟排序开始前,交换标志应为假 exchange=fa
C#算法(四)快速排序(转)
前面我已经推出了三种排序的算法,比较简单。今天我又写了快速排序的算法。希望多多指教。具体的思想,我不做答了。前人的经验。 using System; namespace QuickSorter { public class QuickSorter { private void Swap(ref int l,ref int r) { int s; s=l; l=r; r=s; } public void Sort(int [] list,int low,int high) { int pivot; int l,r; int mid; if(high<=low) return; else if(high==low+1) { if(list[low]>list[high]) Swap(ref list[low],ref list[high]); return;
C#算法(三)希尔排序(转)
朋友们,我最近加紧写C#的一些算法。选择排序,插入算法是我已经推出的。现推出希尔排序.今后,如有时间我将依次推出其它的算法编写。 希尔排序是将组分段,进行插入排序. 对想提高C#语言编程能力的朋友,我们可以互相探讨一下。 如:下面的程序,并没有实现多态,来,帮它实现一下。using System; public class ShellSorter { public void Sort(int [] list) { int inc; for(inc=1;inc<=list.Length/9;inc=3*inc+1); for(;inc>0;inc/=3) { for(int i=inc+1;i<=list.Length;i+=inc) { int t=list[i-1]; in
C#算法(二)插入排序(转)
朋友们,我最近加紧写C#的一些算法。选择排序已经推出的。现推出插入算法。 对想提高C#语言编程能力的朋友,我们可以互相探讨一下。 如:下面的程序,并没有实现多态,来,帮它实现一下。 using System; public class InsertionSorter { public void Sort(int [] list) { for(int i=1;i<list.Length;++i) { int t=list[i]; int j=i; while((j>0)&&(list[j-1]>t)) { list[j]=list[j-1]; --j; } list[j]=t; } } } public class MainClass { public static void Main() { int[
C#算法(一)选择排序(转)
嗨!朋友们,C#将是未来网络开发的首选语言。本人用了C#开发出选择排序算法。希望能为C#语言的学习者带来一些益处。 不要忘了,学语言要花大力气学数据结构和算法。 using System; public class SelectionSorter { // public enum comp {COMP_LESS,COMP_EQUAL,COMP_GRTR}; private int min; // private int m=0; public void Sort(int [] list) { for(int i=0;i<list.Length-1;++i) { min=i; for(int j=i+1;j<list.Length;++j) { if(list[j]<list[min]) min=j; } int t=list[min]; list[mi
Visual C#中的MDI编程(转)
多文档界面就是所谓的MDI,他是从Windows 2.0下的Microsoft Excel电子表格程序开始引入的,这是因为Excel电子表格用户有时需要同时操作多份表格,MDI正好为这种操作多表格提供了很大的方便,于是就产生了MDI程序。在视窗系统3.1版本中,MDI得到了更大范围的应用。其中系统中的程序管理器和文件管理器都是MDI程序。 Visual C#是微软公司推出的下一代主流程序开发语言,他也是一种功能十分强大的程序设计语言,正在受到越来越多的编程人员的喜欢。在Visual C#中,提供了为实现MDI程序设计的很多功能。本文就是通过一个具体的例子来详细的介绍
讲解C#的Namespace(转)
我现在感到学好C#就是就是要知道,C#的基本语法,C#的新的特点,C#能干什么! 其中我感到不管如何,NAMESPACE都是很关键的,可以说不是只对C#而言,而是整个。NET都是由NAMESPACE组成的,所以我在看了C#的基本语法后,就直奔NAMESPACE来了,在这里写下自己的一些感觉,希望能对后面学习的人有所帮助。 NAMESPACE在新的NET环境下编程可以说是无所不在,总之,给我的感觉就是MS的新一代的语言的核心就是NAMESPACE,我们可以通过已经有的NAMESPACE,做我们想做的和愿意做的,当然如果你感觉现有的还不够你的使用的话,你也可以自己来使用现有
C# 语言规范--2.5.7 行指令(转)
行指令可用于改变编译器在输出(如警告和错误)中报告的行号和源文件名称。行指令最通用于从某些其他文本输入生成 C# 源代码的元编程工具。 pp-line:(pp 行:) whitespaceopt # whitespaceopt line whitespace line-indicator pp-new-line(空白可选 # 空白可选 line 空白 行指示符 pp 新行) line-indicator:(行指示符:) decimal-digits whitespace file-name(十进制数字 空白 文件名) decimal-digits(十进制数字) default hiddenfile-name:(文件名:) " file-name-characters &quo
C# 语言规范--2.5.6 区域指令(转)
区域指令用于显式标记源代码的区域。 pp-region:(pp 区域:) pp-start-region conditional-sectionopt pp-end-region(pp 开始区域 条件节可选 pp 结束区域) pp-start-region:(pp 开始区域:) whitespaceopt # whitespaceopt region pp-message(空白可选 # 空白可选 region pp 消息) pp-end-region:(pp 结束区域:) whitespaceopt # whitespaceopt endregion pp-message(空白可选 # 空白可选 endregion pp 消息)区域不具有任何附加的语义含义;区域旨在由程序员或自动工具用来标记源代
C# 语言规范--2.5.5 诊断指令(转)
诊断指令用于显式生成错误信息和警告消息,这些信息的报告方式与其他编译时错误和警告相同。 pp-diagnostic:(pp 诊断:) whitespaceopt # whitespaceopt error pp-message(空白可选 # 空白可选 error pp 消息)whitespaceopt # whitespaceopt warning pp-message(空白可选 # 空白可选 warning pp 消息) pp-message:(pp 消息:) new-line(新行)whitespace input-charactersopt new-line(空白 输入字符可选 新行)示例:#warning Code review needed before check-in#if Debug &&
C# 语言规范--2.5.4 条件编译指令(转)
条件编译指令用于按条件包含或排除源文件中的某些部分。 pp-conditional:(pp 条件:) pp-if-section pp-elif-sectionsopt pp-else-sectionopt pp-endif(pp if 节 pp elif 节可选 pp else 节可选 pp endif) pp-if-section:(pp if 节:) whitespaceopt # whitespaceopt if whitespace pp-expression pp-new-line conditional-sectionopt(空白可选 # 空白可选 if 空白 pp 表达式 pp 新行 条件节可选) pp-elif-sections:(pp elif 节:) pp-elif-section(pp elif 节)pp-elif-sections p
C# 语言规范--2.5.3 声明指令(转)
声明指令用于定义或取消定义条件编译符号。 pp-declaration:(pp 声明:) whitespaceopt # whitespaceopt define whitespace conditional-symbol pp-new-line(空白可选 # 空白可选 define 空白 条件符号 pp 新行)whitespaceopt # whitespaceopt undef whitespace conditional-symbol pp-new-line(空白可选 # 空白可选 undef 空白 条件符号 pp 新行) pp-new-line:(pp 新行:) whitespaceopt single-line-commentopt new-line(空白可选 单行注释可选 新行)对 #define 指令
C# 语言规范--2.5.2 预处理表达式(转)
预处理表达式可以出现在 #if 和 #elif 指令中。在预处理表达式中允许使用 !、==、!=、&& 和 || 运算符,并且可以使用括号进行分组。 pp-expression:(pp 表达式:) whitespaceopt pp-or-expression whitespaceopt(空白可选 pp 或表达式 空白可选) pp-or-expression:(pp 或表达式:) pp-and-expression(pp 与表达式)pp-or-expression whitespaceopt || whitespaceopt pp-and-expression(pp 或表达式 空白可选 || 空白可选 pp 与表达式) pp-and-expression:(pp 与表达式:) pp-equality-expres
C# 语言规范--2.5.1 条件编译符号(转)
#if、#elif、#else 和 #endif 指令提供的条件编译功能是通过预处理表达式(第 2.5.1 节)和条件编译符号来控制的。 conditional-symbol:(条件符号:) 除 true 和 false 外的任何标识符或关键字条件编译符号有两种可能的状态:已定义的或未定义的。在源文件词法处理开始时,条件编译符号除非已由外部机制(如命令行编译器选项)显式定义,否则是未定义的。当处理 #define 指令时,在指令中指定的条件编译符号在那个源文件中成为已定义的。此后,该符号就一直保持已定义的状态,直到处理一条关于同一符号的 #undef 指令,或者到达源文件的
C# 语言规范--2.4.5 运算符和标点符号(转)
有若干种运算符和标点符号。运算符在表达式中用于描述涉及一个或多个操作数的运算。例如,表达式 a + b 使用 + 运算符添加两个操作数 a 和 b。标点符号用于分组和分隔。 operator-or-punctuator(运算符或标点符号):下列之一 { } [ ] ( ) . , : ; + - * / % & | ^ ! ~ = < > ? ++ -- && || << >> == != <= >= += -= *=
C# 语言规范--2.5 预处理指令(转)
预处理指令提供按条件跳过源文件中的节、报告错误和警告条件,以及描绘源代码的不同区域的能力。使用术语“预处理指令”只是为了与 C 和 C++ 编程语言保持一致。在 C# 中没有单独的预处理步骤;预处理指令按词法分析阶段的一部分处理。 pp-directive:(pp 指令:) pp-declaration(pp 声明)pp-conditional(pp 条件)pp-line(pp 行)pp-diagnostic(pp 诊断)pp-region(pp 区域)下面是可用的预处理指令: #define 和 #undef,分别用于定义和取消定义条件编译符号(第 2.5.3 节)。 #if、#elif、#else 和 #endif,用于按条件跳过源代码
C# 语言规范--2.4.4.6 空文本(转)
null-literal:(空文本:) null“空文本”的类型为 null 类型。[@more@]