线性表

作者: 日常表白结衣 | 来源:发表于2017-07-26 11:05 被阅读0次

【什么是算法?】
空间复杂度S(n):根据算法写成的程序在执行时占用存储单元的长度。
时间复杂度T(n):根据算法写成的程序在执行时消耗的时间长度。
分析算法复杂度
Tworst(n):最坏情况复杂度
Tav(n):平均复杂度
【什么是线性表?】
“线性表(Linear List)”:由同类数据元素构成有序序列的线性结构
表中的元素个数称为线性表的长度,没有元素时称为空表,表的起始位置称为表头,结束位置称为表尾。
【线性表的顺序存储实现】

typedef struct Lnode *List;
struct Lnode {
          ElementType Data[MAXSIZE];
          int Last;     //线性表最后一个元素
};
struct LNode L;
List PtrL; //PtrL为指向结构体的指针 || struct Lnode * PtrL

访问下标为i的元素:L.Data[i]或者PtrL->Data[i]
线性表长度:L.Last+1或者PtrL->Last+1
【线性表的主要操作】
1、初始化(建立空的顺序表)

List MakeEmpty()
{
    List PtrL;
    PtrL=(List )malloc(sizeof(struct LNode));
    PtrL->Last=-1;
    return PtrL;
}

2、查找

/* 查找成功的平均比较次数是(n+1)/2
    平均时间性能是O(n) */
int Find()(ElementType X,List PtrL)
{
    int i=0;
    while(i<=PtrL->Last && PtrL->Data[i]!=X)
            i++;
     if(i>PtrL->Last)    return -1;
     else  return i;
}

3、插入

/* 第i个位置上插入一个值为x的新元素 */
void Insert(ElementType X, int i, List PtrL)
{
        /*MAXSIZE 数组大小*/
    if (PtrL->Last == MAXSIZE - 1) {
        printf("表满");
        return;
    }
    if (i<1 || i>PtrL->Last + 2) {
        printf("位置不合法");
        return;
    }
    for (j = PtrL->Last; j >= i - 1; j--)
        PtrL->Data[j + 1] = PtrL->Data[j];
    PtrL->Data[i - 1] = X;
    PtrL->Last++;
    return;
}

4、删除

/* 删除表的第i个位置上的元素 */
void Delete(int i, List PtrL)
{
    int j;
    if (i<1 || i>PtrL->Last + 1) {
        printf("不存在第%d个元素", i);
        return;
    }
    for (j = i; j <= PtrL->Last; j++)
        PtrL->Data[j - 1] = PtrL->Data[j];
    PtrL->Last--;
    return;
}

相关文章

  • 线性表的相关操作

    集合 --- 创建线性表 解散 --- 销毁线性表 长度 --- 得到线性表的长度 出列 --- 从线性表删除一个...

  • [数据结构]第二章线性表(1)——线性表

    线性表 线性表的基本概念 线性表的定义 线性表是具有相同数据类型的n(n>=0)个元素的有限序列。 线性表的基本操...

  • 数据结构与算法(二)

    线性表及其顺序存储结构 线性表的基本概念 线性结构又称为线性表,线性表是最简单也是最常用的一种数据结构。 线性表的...

  • 线性表及应用

    线性表 “线性表(List):零个或多个数据元素的有限序列。” 线性表的顺序存储结构 线性表的顺序存储结构,指的是...

  • 数据结构03-线性表之顺序表

    第三章 线性表之顺序表 第三章 线性表之顺序表一、什么是线性表?1> 概念2> 线性表的基本操作二、线性表的顺序存...

  • 数据结构之线性表

    1、线性表-顺序表线性表-顺序表

  • 线性表数据结构

    线性表 线性表就是数据排成像一条线的结构,每个线性表上的数据最多只有前和后两个方向。与线性表对立的是非线性表,如二...

  • 大话数据结构 - 线性表

    代码GitHub地址 线性表 线性表需要相同的数据类型 线性表的处理方式都是先取代,后目的。比如删除链式线性表的某...

  • 数据结构-线性表(顺序表和链表)

    大纲:理解线性表的逻辑结构掌握线性表的顺序存贮结构和链式存贮结构;掌握线性表基本操作的实现。了解线性表的应用。 线...

  • 数据结构 线性表 单链表 c语言实现可运行

    线性表 线性表概念 线性表定义:具有相同特性数据元素的有限序列。线性表的逻辑结构:线性结构。只有一个表头,只有一个...

网友评论

      本文标题:线性表

      本文链接:https://www.haomeiwen.com/subject/wsjdkxtx.html