zoukankan      html  css  js  c++  java
  • 一、表

    一、ADT表

      线性表是一种非常灵活的结果,可以根据需要改变表的长度,也可以在任何位置对元素进行访问,插入或者删除操作.另外,还可以将多个表连接成一个表,或者把一个表拆分成多个表

    1、ADT表定义

    线性表List是n个相同类型数据元素a1,a2,...an构成的有限序列.表示成List=(a1,a2...,an)

    2、表长

    线性表中元素的个数,n=0时为空表

    3、表的前驱和后继

    线性表的ai领先于ai+1,则ai+1是ai的后继,ai-1是ai的前驱。

    4、抽象数据类型List

    5、线性表的基本运算

      5.1、ListEmpty(L):测试表L是否唯恐

      5.2、ListLength(L):表L的长度

      5.3、ListLocate(x,L):元素x在表L中的位置,若x在表中重复出现多次,则返回最前面的x位置

      5.4、ListRetrieve(k,L):返回表L的位置k处的位置的元素。表中没有位置k时,该运算无意义

      5.5、ListInsert(k,x,L):在表L的位置k之后插入元素x,并将原来占据该位置的元素及其后面的元素依次后移一个位置,如果表中没有位置k,则运算无意义。

      5.6、ListDelete(k,L):从表L中删除位置k处的元素,并返回该位置删除的元素。表中没有这个位置k时,运算无意义。

      5.7、PrintList(L):将表L中所有的元素按位置的先后顺序先后输出。

    6、用数组实现表

      6.1、顺序表:一组地址连续的存储单元(数组)存放一个线性表叫顺序表

      6.2、元素地址计算:location(ai)=location(a0)+i*num  location(a+i)=location(ai)+num

      注:num是一个元素占用的存储单元个数,location(ai):表示第i个元素的地址。

      6.3、顺序表的特点:实现逻辑上的相邻(物理地址相邻)  实现随机存取

      6.4、结构的定义:

    //数据元素不是简单类型时,可以定义结构体数组
    #define maxsize 1000
    int data[maxsize];
    typedef struct test
    {
        int num;
        char name[20];
        char author[10];
        char publisher[30];
        float price;
    }card;
    card library[maxsize];

      6.4、用数组实现的ADT表的类型

      用数组实现表时,为了适应表的元素类型,将表类型List定义为一个结构体

    typedef struct alist *List;//定义alist的含义
    typedef struct alist{
        int n;//表长度,n=0,表为空
        int maxsize;//线性表的最大长度
        ListItem *table;//表元素数组
    }Alist;

    顺序表List的基本运算实现:

    1、初始化函数:分配大小为size的空间给表数组table,并返回初始化为空的表

  • 相关阅读:
    golang删除数组某个元素
    golang用通道实现信号量,控制并发个数
    什么是ScaleIO中的forwards rebuild和backwards rebuild?
    SQL Server中的database checkpoint
    如何将thick provision lazy zeroed的VMDK文件转换为thick provision eager zeroed?
    LoadTestAgentResultsLateException in VS2010
    SQL Server Instance无法启动了, 因为TempDB所在的分区没有了, 怎么办?
    VMware vCenter中, 如何辩认虚机上Raw Device Mapping过了的一块物理磁盘?
    SQL Server AlwaysOn Setup Step-By-Step Guide
    TPC-E在populate测试Database时需要注意的一些事项
  • 原文地址:https://www.cnblogs.com/drq1/p/8576562.html
Copyright © 2011-2022 走看看