码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构和算法(二)

时间:2019-07-20 10:25:11      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:实现   oca   blank   tin   数组   存储   线性表   tps   delete   

线性表
- 线性表的抽象数据类型

ADT List {
    D = {a[i] | a[i] is ElemSet, i = [0, n], n >= 0}
    R = { <a[i-1], a[i]> | a[i-1],a[i] in D, i = [1, n]}  //前驱关系
    Operation:
        InitList(&L)
        DestyoyList(&L)
        ClearList(L)
        ListEmpty(L)
        ListLength(L)
        GetElem(L, i, &e)
        LocateElem(L, e, compare())
        PriorElem(L, cur_e, &pre_e)
        NextElem(L, cur_e, &next_e)
        ListInsert(&L, i, e)
        ListDelete(&L, i, &e)
        ListTraverse(L, visit())
}ADT List

- 线性表的顺序存储结构
  - 通过数组方式实现线性表, 存取的复杂度为O(1),但是插入和删除的复杂度为O(n)
  - 数组长度难以确定、容易造成空间碎片
  - 适用于少修改,多查询的情况

- 线性表的链式存储结构
  - 通过链表方式实现线性表, 存取复杂度为O(n), 在已知前驱位置的情况下插入和删除复杂度为O(1)
  - 适用于多次修改或者容量未知的情况
  - 头指针和头节点
    - 头指针:一定是指向线性表的第一个节点(可为空,必须有)
    - 头节点:为了操作数据的便利可以添加头节点,数据域无意义(可以存储长度或自定义)(非必要元素)

- 线性表的实现
  源码参考:https://www.cnblogs.com/qq188380780/p/7482390.html

数据结构和算法(二)

标签:实现   oca   blank   tin   数组   存储   线性表   tps   delete   

原文地址:https://www.cnblogs.com/qq188380780/p/11216493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!