线性表

来源:互联网 发布:收银会员软件 编辑:程序博客网 时间:2024/06/04 19:52

线性表是n个数据元素的有限序列。一个数据元素可以由若干个数据项组成,常把数据元素成为记录,含有大量记录的线性表称为文件

基础知识

  • 顺序表
    用一组地址连续的存储单元依次存储线性表的数据元素
typedef struct{    ElemType *elem;    int length;    int listize;}SqList;
  • 链表
    用一组任意的存储单元存储线性表的数据元素
    数据元素 a的存储映像称为结点,包含两个域:存储数据元素信息的域称为数据域;存储直接后继存储位置的域称为指针域。指针域中存储的信息称作指针

    单链表

typedef struct LNode{    ElemType data;    struct LNode *next;}LNode,*LinkList;
  • 静态单链表
#define MAXSIZE 100typedef struct{    ElemType data;    int cur;}component,SLinkList[MAXSIZE];
  • 循环链表
    表中最后一个节点的指针域指向头结点,整个链表形成一个环
  • 双向链表
typedef struct DuLNode{    ElemType data;    struct DuLNode *prior;    struct DuLNode *next;}DuLNode,*DuLinkList;
  • 带头节点的线性链表
typedef struct LNode{    ElemType data;    struct LNode *next;}*Link,*Position;typedef struct{    Link head,tail;    int len;}LinkList;

常见问题

  • 插入/删除操作
  • 链表反转
  • 判断环/找入口点
  • 判断链表相交
  • 约瑟夫环
0 0
原创粉丝点击