顺序表与链表的基本操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了顺序表与链表的基本操作相关的知识,希望对你有一定的参考价值。

SqList

typedef struct
{
    ElemType *elem;   //存储空间基址
    int length;           //当前长度
    int listsize;          //当前容量
}SqList ;

L->elem = (ElemType*)mallloc(LIST_INIT_SIZE*sizeof(ElemType));L->length = 0;L->listsize = LIST_INIT_SIZE;

L->elem = (ElemType*)realloc(L->elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));

if(NULL == L->elem) exit(OVERFLOW);

销毁操作  free(L->elem); L->elem = NULL;L->length = L->listsize = 0;

顺序表,顺序存储,初始化操作为顺序表分配一个预定义大小的数组空间;因插入元素导致空间不足可进行再分配(realloc);

 

 

LinkListt

typedef struct LNode

{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList ;

L = (LinkList)malloc(sizeof(LNode));L->next = NULL;
销毁Destroy  p = L;L = L->next;free(p); 清空Clear 只保留头结点;

链表,创建结点与释放结点,结点带数据与指针两个信息;

 

 

综:考虑插入、删除操作是否合理,否则exit(ERROR);考虑存储分配是否成功(SqList),否则exit(OVERFLOW);

以上是关于顺序表与链表的基本操作的主要内容,如果未能解决你的问题,请参考以下文章

数据结构-线性表(顺序表与链表的基本知识 以及ArrayList 源码分析)

《数据结构》顺序表与链表

数据结构 顺序表与链表 四部曲总汇

数组与链表的区别

顺序表与链表

作业三(第四周)