线性表

作者: 净土_0342 | 来源:发表于2018-05-25 13:13 被阅读0次

[TOC]

带头结点的单向链表

typedef struct LNode{
    ElemYype data;
    struct LNode *next;
}LNode,*LinkList;

获取元素

GetElem_l(LinkList L,int i,ELemtype &e)
//带头结点,返回第I个元素,并赋值给e,成功返回1,失败返回-1
{
    p = L-next;j=1;
    while(p&&j<i){
        p = p->next;j++;
    }
    if(!p||j>i) return -1;
    e = p->data;
    return 1;
}

指定位置插入一个结点

int ListInsert_l(LinkList &L,int i,Elemtype e)
{
    p = L;j=0;
    while(p&&j<i-1)
    {
        p = p->next;
        j++;
    }//寻找第i-1个结点
    if(!p||j>i-1) return -1;
    s = (Linklist)malloc(sizeof(LNode));
    s->data = e;s->next = p->next;
    p->next =s;
    return 1;
}

指定删除一个结点

int ListDelete_l(LinkList &l,int i,ElemType &e)
{ //提取删除的第一个元素在e中,成功返回1,失败-1
    p =L;i=0;
    while(p&&j<i-1)
    {
        p=p->next;
        j++;
    }
    if(!(p->next)||j>i-1) return -1;
    q = p->next;p->next = q->next;
    e = q->data;free(q);
    return 1;
} //ListDelete_l

循环双向链表

定义

typedef struct DulNode{
    ElemType data;
    struct DulNode *prior;
    struct DulNode *next;
}DuLNode,*DulLinkList;

指定位置插入结点

int ListInsert_dul(DuLinkList &L,int i,ElemType e)
{//成功返回1,失败-1
    int j=0;
    DuLinkList p = L;
    while(p&&j<i){
        p= p->next;j++;
    }
    if(!p ||j>i)
        return -1;
    if(!(s=(DuLinkList)malloc(sizeof(DuLNode)))) return -1; //申请内存失败
    s->data = e;
    s->prior = p->prior;p->prior->next = s;
    s->next = p; p->prior =s;
    return 1;
}

指定位置删除结点

int ListDelete_DuL(DuLinkList &L,int i,ElemType &e)
{
    if(!(p=GetElemP_DuL(L,i)))
        return -1;
    e = p->data;
    p->prior->next = p->next; 
    p->next->prior = p->prior; // 这两句话应该是可以调换的,因为p一直都存在
    free(p);
    return 1;
}

中间的结点变量很重要应该要首先赋值.

相关文章

  • 线性表的相关操作

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

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

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

  • 数据结构与算法(二)

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

  • 线性表及应用

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

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

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

  • 数据结构之线性表

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

  • 线性表数据结构

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

  • 大话数据结构 - 线性表

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

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

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

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

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

网友评论

      本文标题:线性表

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