数据结构与算法(二)—— 线性表的链式表示及常用操作
单链表的表示
1 | typedef struct Lnode{ |
Ex:1:存储学生信息的单链表
1 | typedef struct student{ |
单链表的初始化、判空、销毁、清空
单链表的初始化
1 | int initList_L(LinkList &L){ |
单链表的判空:判断头结点指针域是否为空
1 | int ListEmpty(LinkList L){ |
单链表的销毁:从头指针开始,依次释放所有节点
1 | int DestroyList_L(LinkList &L){ |
单链表的清空:依次释放所有结点,并将头结点指针域设置为空
1 | int ClearList_L(LinkList &L){ |
求单链表的表长
求单链表的表长
1 | int ListLength_L(LinkList L){ |
单链表的增删查改
求单链表的第i个元素
1 | int GetElem_L(LinkList L,int i,ElemType &e){ |
单链表按值查找
1 | int LocateElem_L(LinkList L,ElemType e){ |
单链表的插入
1 | int ListInsert_L(LinkList &L,ElemType e,int i){ |
单链表结点的删除
1 | int ListDelete_L(LinkList &L,int i,ElemType &e){ |
头插法、尾插法建立链表
头插法建立链表
1 | void CreateList_H(LinkList &L,int n){ |
时间复杂度为O(n)
尾插法建立链表
1 | void CreateList_E(LinkList &L,int n){ |
时间复杂度为O(n)
链表相关算法的算法分析
我有看见时间复杂度就犯困的病,所以算法分析明天再看明天再写
反正链表就差这一部分了,摸了摸了
To Be Continued…
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 HaruYuki's Blog!








