c#数据结构导论 基本概念

c#数据结构导论 基本概念

ID:34112285

大小:134.96 KB

页数:11页

时间:2019-03-03

c#数据结构导论 基本概念_第1页
c#数据结构导论 基本概念_第2页
c#数据结构导论 基本概念_第3页
c#数据结构导论 基本概念_第4页
c#数据结构导论 基本概念_第5页
资源描述:

《c#数据结构导论 基本概念》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、概念部分CH1绪论数据结构(datastructure)是指数据元素之间存在某种关系的数据集合。数据结构课程主要讨论三方面的问题:数据的逻辑结构、数据的存储结构和数据的操作。数据的逻辑结构线性结构;树结构;图结构。线性结构具有的特性是:数据集合的第一个数据元素没有前驱数据元素,最后一个数据元素没有后继数据元素,其他的每个元素只有一个前驱元素和一个后继元素。树结构具有的特性是:数据集合有一个特殊的数据元素称为根(root)结点,它没有前驱数据元素;树中其他的每个数据元素都只有一个前驱数据元素,可有零个或若干个后继数据元素。图结构具有的特性是:数据集合的每个数据元素可有零个或若干个

2、前驱数据元素,可有零个或若干个后继数据元素。数据的存储结构顺序存储结构;链式存储结构。顺序存储结构将数据集合的元素存储在一块地址连续的内存空间中,并且逻辑上相邻的元素在物理上也相邻。例如,用C语言中的数组可以实现顺序存储结构,数组元素之间的顺序体现了线性结构中元素之间的逻辑次序,数据元素的存储位置由其在集合中的逻辑位置确定。链式存储结构使用称为结点(node)的扩展类型存储各个数据元素,结点由数据元素域和指向其他结点的指针域组成,链式存储结构使用指针将相互关联的结点链接起来。数据集合中逻辑上相邻的元素在物理上不一定相邻,元素间的逻辑关系表现在结点的链接关系上。在顺序存储结构中,

3、所有分配的存储空间都被数据元素占用了;而在链式存储结构中,每个结点至少由两部分组成:数据域和指针域,数据域保存数据,指针域指向相关结点。指针域保存指向相关结点的链信息,因此又称为链域。算法与算法分析算法(Algorithm)是对特定问题求解过程的一种描述,是解决该问题的一个确定的、有限长的操作序列。算法的规则具有如下5个重要特征:确定性可行性有穷性有输入有输出。算法可用文字、流程图、高级程序设计语言或类同于高级程序设计语言的伪码描述。一个好的算法设计应达到以下目标:正确性可读性健壮性高效性算法的时间复杂度:算法的执行时间是算法所处理的数据个数n的某种函数,表示为O(f(n))。

4、算法的空间复杂度:算法在执行时要求的额外内存空间称为算法的空间复杂度(spacecomplexity)。C#基础:C#语言对于数据结构和算法的描述带来极大的便利。数据的逻辑结构、存储结构以及对数据所进行的操作三者实际上是是相互依存、互为一体的,所以用封装、继承和多态等面向对象的特性能够更深入地刻画数据结构。C#提供了对象的自引用方式用以实现数据的链式存储结构,这种方式避免直接使用指针所带来的安全隐患,使C#语言可以实现面向对象的数据结构。弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型。强类型在不同类型间的操作有严格定义,只有相同类型的变量才能操作,虽然系统也

5、有一定的默认转换,当绝没有弱类型那么随便。编译C#程序:cschelloworld.cs将创建一个helloworld.exe,运行输入helloworld即可。使用new来创建数组:<数组名>=new<类型>[<长度>]e.g.int[]a=newint[20]类的声明:[<修饰符>]class<类名>[:<基类名>]包含类主体的类结构如下:<类声明>{<数据成员声明><方法成员声明>}声明字段成员必须给出变量名及其所属的类型,同时还可以指定其他特性。其格式如下:[<修饰符>][static]<变量类型><变量名>声明方法成员的格式如下:[<修饰符>][static]<返回值

6、类型><方法名>(<参数列表>){<方法体>}属性提供对类的某个特征的访问。一个属性可以有2个访问操作符,分别是get和set,它们分别指定属性读取或写入新值的方式。其格式如下:[<修饰符>][static]<类型><属性名>{get{属性读取过程}set{写入新属性值的过程}}属性的声明方式和方法非常相似,区别在于它没有使用括号,也不能使用显式的参数。对象的创建和使用:对象声明的格式:<类名><对象名>;在声明对象的同时可以使用new操作符创建对象,其格式如下:<类名><对象名>=new<与类名相同的构造方法>(<参数列表>);Eg.Stacks=newStack();通过对

7、象引用类的成员变量的格式为:<对象名>.<成员名>通过对象调用成员方法的格式为:<对象名>.<方法名>(<参数列表>)多态:一个方法可能有多个版本,一次单独的方法调用(invoke)可能是这些版本中的任何一种。多态性有两种表现形式:方法的重载和方法的覆盖。一个类中如果有许多同名的方法带有不同的参数,称为方法的重载。重载的价值在于,它允许通过使用一个普通的方法来访问一系列相关的方法。当调用一个方法时,具体调用哪一个方法根据调用方法的参数由编译程序决定,编译程序将选择与调用的实参相匹配的重载方法

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。