1.定义

线性表(list):由零个或多个数据元素组成的有限序列

分类

image.png
image.png
image.png

2.线性表的抽象数据类型。。。

1.顺序存储结构(数组)

image.png
image.png

具体代码操作

1.获取元素操作

  1. #define OK 1;
  2. #define ERROR 0;
  3. #define TRUE 1;
  4. #define FALSE 0;
  5. typedef int Status;
  6. Status GetElem(SqList L,int i,ElemType *e){
  7. if(L.length==0||i<1||i>L.length){
  8. return ERROR;
  9. }
  10. *e=L.data[i-1];
  11. return OK;
  12. }


2.插入操作

  1. #define OK 1;
  2. #define ERROR 0;
  3. #define TRUE 1;
  4. #define FALSE 0;
  5. typedef int Status;
  6. Status ListInsert(SqList *L,int i,ElemType e){
  7. int k;
  8. if(L->length==MAXSIZE){
  9. return ERROR;
  10. }
  11. if(i<||i>L->length+1){
  12. return ERROR;
  13. }
  14. if(i<=L->length){
  15. for(k=->length-1;k>=i-1;k--){
  16. L->data[k+1]=L->data[k];
  17. }
  18. }
  19. L->data[i-1]=e;
  20. L->length++;
  21. return OK;
  22. }



2.链式存储结构

定义:

image.png


1.单链表

对于线性表来说,总得有个头有个尾,链表也不例外。
我们把链表中的第一个节点的储存位置叫做头指针,最后一个节点指针为空(NULL)
image.png

头指针与头结点的异同

定义:
image.png
image.png

图例:
image.png