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,并返回初始化为空的表

  • 相关阅读:
    第5章选择结构程序设计
    悲剧:第一次使用Mysql
    Windows Server 2003 IIS 配置网站出现问题及解决
    关于Matlab的Web开发以及Matlab webservice服务的实现经验
    大连市地方税务局关于取消委托代征技术合同酬金个人所得税问题的通知
    使用 WScript.exe 运行脚本
    JavaScript数组
    总结一些js自定义的函数
    JavaScript中parseInt()函数问题
    [荐]日本官方公布听力网址大全
  • 原文地址:https://www.cnblogs.com/drq1/p/8576562.html
Copyright © 2011-2022 走看看