栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

线性表-链表 (未完)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

线性表-链表 (未完)

一、相关知识点

1.单链表:

(1)头插法建立
读入数据的顺序与生成的链表中的元素顺序相反。
每个点插入O(1),n个点总复杂度O(n)

s->data=x;
s->next=head->next;
head->next=s;

(2)尾插法建立
顺序相同
总复杂度O(n)

s->data=x;
r->next=s;
r=s;

(3)按序号查找节点值/按值查找节点
复杂度O(n)
(4)插入
查找复杂度O(n),插入复杂度O(1)

p=list.GetElem(i-1);
s-next=p->next;
p->next=s;

扩展:将前插(s插到p之前)转化为后插(交换数据域)

s->next=p->next;
p->next=s;
temp=p->data;  //交换数据域
p->data=s->data;
s->data=temp;

(5)删除
O(n)

p=list.GetElem(i-1);
q=p->next;
p->next=q->next;
delete q;

2.双链表
(1)插入

s->next=p->next;
p->next->prior=s;
s->prior=p;
p->next=s;

(2)删除

p->next=q->next;
q->next->prior=p;
delete q;

3.循环链表
(1)循环单链表
尾指针r,r->next头指针
(2)循环双链表
循环双链表为空表时,其头节点的prior和next都等于head
4.静态链表
指针指的是数组下标(游标)
next==-1结束

二、题目

1.链式存储结构比顺序存储结构能更方便的表示各种逻辑结构

2.给定n个元素的一维数组,建立一个有序单链表的最低时间复杂度为?
答案: O ( n log ⁡ 2 n ) O(nlog_2n) O(nlog2​n)
先对数组排序,再建表(O(n))
3.一个链表最常用的操作是在末尾插入和删除,则选用带头结点的双循环链表最节省时间

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665517.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号