数据结构(一)数据结构算法与顺序表

来源:互联网 发布:js 数字转化为excel列 编辑:程序博客网 时间:2024/05/16 10:36


一、数据结构与顺序表

+理解数据结构与算法
+掌握顺序表的操作

数据结构 是指相互之间有一定联系的数据元素的集合,元素之间的相互联系 称为 逻辑结构。
数据元素之间的逻辑结构分为:
                          集合     线性           树形         网状结构
                          无序    一条线     Win资源管理器       拓扑
数据结构的研究:
1、数据的逻辑结构
   逻辑关系的描述,独立于计算机的。
   分为:线性(线性表、栈、队列)和非线性(树形结构、网状结构)

2、数据的存储结构

   分为:顺序存储、链式存储、散列表(哈希)、索引表(目录)
 

3、数据的运算       
 
   分为:增加、删除、修改、查找、排序 
 
 
算法 是对特定问题求解方法的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。

   描述算法的两个参数:
   时间复杂度:基本操作重复执行n次 T(n)=0(f(n))
   空间复杂度:运行时所需要的存储空间的大小的质量 S(n)=0(f(n))
  
算法的要求:

   正确性、可读性、健壮性、通用性、效率与存储量需求

================================================================================
线性表:

    由 n(n>0)个元素组成
 n=0 空表
 n>0 讲非空线性表记为 a0 a1 a2 a(n-1)
    a0为首节点 a(n-1)尾节点
 
 顺序表:线性表的节点按照逻辑顺序依次存放在一组地址连续的存储单元,用这个方法存储的线性表为顺序表
 两个最常见的操作:存数据和取数据
 特点:
     1、物理顺序和逻辑顺序是一致的
  2、数据之间的关系,可通过物理关系体现
 
 操作:
 初始化顺序表
 在指定位置插入一个元素
 
  实现步骤:
  1、检查顺序表是否已满
  2、插入的位置i是否合法(是否越界)
  3、将现行表L中的第i个元素至第n个结点后移一个位置
  4、将结点e插入到结点a(i-1)之后(其实就是第i个位置)
  5、线性表长度+1
  
 
 在指定位置删除一个元素
 
     实现步骤:
  1、检查顺序表是否为空
  2、检查删除位置i是否合法
  3、将线性表L中的第i+1个至第n个结点依次向前移动一个位置
  4、线性表长度-1
  
 顺序表总结:
 
     1、插入或删除一个数据元素时,时间主要耗费在移动元素上,而移动元素的个数取决于插入或删除元素的位置
  2、空间不能充分利用,扩展能力较差
  3、若线性表的主要操作时进行查找及存取表中任一个元素,插入和删除操作较少时,采用顺序表存储结构为宜
 
 作业:
 1、从文件中读取一个顺序表的数据,对顺序表中的数据进行添加、删除、修改等操作,然后再保存到原文件中,每个功能编写一个函数,由mian函数调用‘
 2、合并两个顺序表,需要将其中一个表的数据连接到另外一个表的后面,需要考虑内存溢出的情况。