美文网首页数据结构
2023-03-29 数据结构【二】顺序表,单链表 ,双链表,链

2023-03-29 数据结构【二】顺序表,单链表 ,双链表,链

作者: ForestPei | 来源:发表于2023-03-28 18:07 被阅读0次

2.2 查找

2.2.1 线性表

for 循环按着索引遍历

int LocateElem_Sq(SqList L,ElemType e){     //算法2.2 顺序表的查找
    //顺序表的查找
    for(int i=0;i<L.length;i++)
        if(L.elem[i]==e) return i+1;
    return 0;
}

2.2.2 单链表

按顺序

指针下移遍历 p= p->next;

Status GetElem_L(LinkList L,int i,ElemType &e){     //算法2.6 按序号查找
    //在带头结点的单链表L中查找第i个元素
    int j;
    LNode *p;
    p=L->next;j=1;                          //初始化,p指向第一个结点,j为计数器
    while(j<i&&p){                          //顺链域向后扫描,直到p指向第i个元素或p为空
        p=p->next;++j;
    }
    if(!p || j>i)   return ERROR;           //第i个元素不存在
    e=p->data;                              //取第i个元素
    return OK;
}       

按值

指针下移遍历,比较指针值域p->data;

LNode *LocateElem_L(LinkList L,ElemType e){         //算法2.7 按值查找
    //在带头结点的单链表L中查找值为e的元素
    LNode *p;
    p=L->next;
    while(p&&p->data!=e)
        p=p->next;                          //寻找满足条件的结点
    return p;                               //返回L中的值为e的数据元素的位置,查找失败返回NULL
}                                           //LocateElem_L

2.2.3 双链表

链表指针后移,单双链表相同

DuLNode *GetElemP_DuL(DuLinkList L,int i){
    //在带头结点的双向链表L中查找第i个元素,返回结点的地址
    int j;
    DuLNode *p;
    p=L->next;j=1;                          //初始化,p指向第一个结点,j为计数器
    while(j<i&&p){                          //顺链域向后扫描,直到p指向第i个元素或p为空
        p=p->next;++j;
    }
    if(!p || j>i)   return NULL;            //第i个元素不存在
    return p;
}                                           //GetElemP_DuL

2.2.4 顺序栈

没有按值,索引查找,只能出栈,入栈

2.2.5 链栈

没有按值,索引查找,只能出栈,入栈

2.2.6 循环队列

没有按值,索引查找,只能出队,入队

2.2.7 链队

没有按值,索引查找,只能出队,入队;

简单总结以上各数据结构的流程;待持续更新

相关文章

  • 数据结构笔记

    数据结构课程概览 ================== 1.顺序表 2.链表:单链表,单向循环链表,双链表...

  • 线性表之顺序表和链表(单/双链表,单/双循环链表)

    线性表按存储方式分为顺序表和链表两种,其中链表又分为单链表,循环链表,双链表,双向循环链表。 顺序表 顺序表采用顺...

  • 数据与算法结构

    线性表 顺序表 链表(物理上离散,逻辑上连续) 链表的类别 单链表 循环链表 双链表 链表的操作 顺序表与链表的比...

  • 线性表总结

    线性表总结 顺序表和链表的定义 链表的结构解析 顺序表类型定义 例 单链表的存储结构定义 例 链表的结构解析 单链...

  • 常见数据结构和算法

    常见数据结构 线性数据结构(按顺序具有数据元素的数据结构):数组,堆栈,链表(单链表 双链表),队列非线性数据结...

  • 链表简介

    链表简介 链表是一种线性数据结构 链表有两种分别为 单链表 伪代码如下: 双链表 伪代码如下: 链表添加操作 单链...

  • 专项练习数据结构之链表

    1.链表:单链表,双链表,循环链表 2.单链表 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表...

  • PHP 实现数据结构

    参考诸多视频和文章,主要通过PHP 实现线性表的顺序存储结构,单链表,静态链表,双向链表以及二叉树等数据结构,代码...

  • 数据结构和算法-5.2-双端链表&双向链表

    双端链表 单链表要想在表尾插入一个链结点,需要遍历整个链表直到表尾,再进行插入,效率很低; 双端链表增加了对表尾链...

  • 数据结构和算法-5.2-双端链表&双向链表

    双端链表 单链表要想在表尾插入一个链结点,需要遍历整个链表直到表尾,再进行插入,效率很低; 双端链表增加了对表尾链...

网友评论

    本文标题:2023-03-29 数据结构【二】顺序表,单链表 ,双链表,链

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