线性表(Linear List

线性表是一个线性结构,它是一个含有n≥0个结点的有限序列,对于其中的结点,有且仅有一个开始结点没有前驱但有一个后继结点,有且仅有一个终端结点没有后继但有一个前驱结点,其它的结点都有且仅有一个前驱和一个后继结点。

线性表的顺序存储结构—顺序表

线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。

顺序表的特点

1.容量固定

存储顺序表的元素需要一整块内存空间,因而顺序表的容量一旦确定,便不能更改。

2.访问速度快

假设每个元素占用的空间大小为L个字节,其中第一个单元的存储地址则是该结点的存储地址,并设表中开始结点a1的存储地址(简称为基地址)是LOC(a1),那么结点ai的存储地址LOC(ai)可通过下式计算:LOC(ai)= LOC(a1)+L*(i-1)   1≤i≤n。

数组

线性表的顺序存储结构在C#中的最直接表现形式就是数组。在C#语言中,数组是最基础也是存取速度最快的一种集合类型。数组是引用类型,保存它们所需的内存空间会在托管堆上分配,一旦数组被创建,其中的所有元素将被初始化为它们的默认值。

    int[] arrayInt= new int[10];
arrayInt[6] = 5;
arrayInt[8] = 3;

以上代码声明了一个值类型int的数组,并把它的长度初始化为10,最后分别给第7和第9个元素赋值。

当数组元素为值类型时,数组对象存放的是值类型对象本身。当元素为引用类型时,数组对象存放的则是对象的引用(指针)。

    Control[] arrayControl= new Control[8];
arrayControl[4] = new DropDownList();
arrayControl[6] = new TextBox();

以上代码声明了一个引用类型Control的数组,并把它的长度初始化为8,最后分别给第5和第7个元素赋值。两个值是分别DropDownList和TextBox对象,虽然它们都继承自Control类,但两者却是不同类,它们的大小不一样。

ArrayList

C#中的ArrayList 的容量是根据需要自动扩展的。ArrayList 提供添加、插入或移除某一范围元素的方法。
Insert(int index, object value)方法用于在指定索引处插入一个元素。为了保证顺序表中的每个元素物理上相邻,插入点后面的所有元素都将后移一位。

RemoveAt(int index)方法用于删除指定索引的元素,删除指定元素后,删除点后的所有元素将向前移动一位。

二叉树

   二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。
     二叉树(BinaryTree)是n(n≥0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树右子树的二叉树组成。
   这个定义是递归的。由于左、右子树也是二叉树, 因此子树也可为空树。

二叉树的深度优先遍历

  1.先序遍历

  若二叉树为非空,则过程为:

(1) 访问根节点。

(2) 先序遍历左子树。

(3) 先序遍历右子树。

  2.中序遍历

  若二叉树为非空,则过程为:

(1) 按中序遍历左子树。

(2) 访问根结点。

(3) 按中序遍历右子树。

  3.后序遍历

  若二叉树为非空,则过程为:

(1) 按后序遍历左子树。

(2) 按后序遍历右子树

(3) 访问根结点。

本文转自程兴亮博客园博客,原文链接http://www.cnblogs.com/chengxingliang/p/3533908.html:,如需转载请自行联系原作者

C#知识点总结系列:C# 数据结构相关推荐

  1. redis 系列7 数据结构之跳跃表

    redis 系列7 数据结构之跳跃表 原文:redis 系列7 数据结构之跳跃表 一.概述 跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问 ...

  2. 关于代码家(干货集中营)共享知识点汇总系列——App

    关于代码家(干货集中营)共享的所有知识点App部分的汇总,后续每周会对其进行更新 更多内容请选择以下入口 关于代码家(干货集中营)共享知识点汇总系列--Android 关于代码家(干货集中营)共享知识 ...

  3. 关于代码家(干货集中营)共享知识点汇总系列——瞎推荐

    关于代码家(干货集中营)共享的所有知识点其他方面的汇总,后续每周会对其进行更新 更多内容请选择以下入口 关于代码家(干货集中营)共享知识点汇总系列--Android 关于代码家(干货集中营)共享知识点 ...

  4. 关于代码家(干货集中营)共享知识点汇总系列——前端

    关于代码家(干货集中营)共享的所有知识点前端部分的汇总,后续每周会对其进行更新 更多内容请选择以下入口 关于代码家(干货集中营)共享知识点汇总系列--Android 关于代码家(干货集中营)共享知识点 ...

  5. Java学习系列及数据结构博客全目录

    Java学习系列 Java学习系列(一)Java的运行机制.JDK的安装配置及常用命令详解 Java学习系列(二)Java注释.标识符.基本数据类型及其转换易错点详解 Java学习系列(三)Java运 ...

  6. python基础系列教程——数据结构(列表、元组、字典、集合、链表)

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 基本顺序存储结构--列表与元组 Python中的基本顺序存储结构是列表与元组,在操作的复杂度上和数组完全相同,其中列表是可变数据类型, ...

  7. 单片机百科知识点---杂七杂八系列

    目录 PNP三极管 TTL施密特触发器 c89和c99标准 SP PC(程序计数器) 峰值和峰峰值,有效值 位字段 map文件 USART和UART的区别 串口(RS232,RS485,RS422) ...

  8. 蒟蒻吃药计划-治疗系列 #round6 数据结构初步-指针|链表|结构体

    今天小蒟蒻我学习了一丁点儿关于数据结构的东西,现在我来和大家昏响昏响. %%%WEY神犇神速切火题 更新中 转载于:https://www.cnblogs.com/Fraction/p/8477739 ...

  9. 认真学习系列:数据结构与算法——慕课网笔记

    一 数据的基本概念 1.数据:所有能输入计算机并被识别的符号 数据元素:数据基本单位,由若干数据项组成(比如数据库里的一条数据) 数据项:最小数据单位(比如数据库里一条数据的每一列就是一个数据项) 数 ...

最新文章

  1. python mac电脑定时关机怎么设置_python实现电脑定时关机
  2. 三年从前端小工到架构-知乎 Live 学习整理
  3. 关于更改linux源文件的问题(ubuntu)
  4. Django框架(10.Django中的模型类的定义以及模型类字段属性和选项)
  5. 成员函数指针与高性能的C++委托
  6. enter sleep mode黑屏怎么解决_【linux】 不要再暴力关机了,讲讲我最近遇到的问题和完美解决方案...
  7. 福利 | 国外最牛逼的一套 PPT 作品送给你
  8. jq 目录树ajax,javascript
  9. Java与模式.pdf
  10. atat(mcsqs)建立相对稳定的高熵合金模型
  11. Slate轨道工具使用(二)—Odin支持
  12. 拆解查看unity游戏资源
  13. MyBatis Plus逆向生成
  14. 熊市之后!除了割肉就是割肉!(爆笑漫画)
  15. 空城计课件软件测试,空城计课件公开课.ppt
  16. 《第五项修炼》读后感
  17. 联想电脑G40无法使用 非要睡眠后才能启用wifi
  18. 简化版的宿舍管理系统(有细微的逻辑问题,没优化)
  19. 可以将图片格式转换成CAD格式图纸吗?
  20. C++经典算法题-兔子增长题

热门文章

  1. 手动搭建一个Spring Boot项目
  2. ROS: Ubuntu16.04安装ROS-kinetic
  3. 使用Caffe预测遇到的问题
  4. spring项目的 WebApplicationContext 初始化两次的解决方法
  5. xml 文件解析 pull
  6. SQL Server安全(11/11):审核(Auditing)
  7. [转载]MIT牛人解说数学体系
  8. Microsoft Expression Blend Preview for Silverlight 5新版发布
  9. 利用CSS的三列等高布局
  10. 生成树(STP)学习笔记