线性表

 

1.单链表
1.1 结点描述
    Lnode *p<=>linklist p


1.2 结点实现


1.3 基本操作
1.3.1 赋值
    注意几种情况
    画图来理解结构

第四种操作可能有断链的可能; 


    注意几种情况
    画图来理解结构
1.3.2 查找
    头结点为第0个结点
1.3.2.1 按序号查找(o(n)
1.3.2.2 按值查找
1.3.3 删除(双指针法)
1.3.3.1 按序号删除
1.3.3.2 按值删除
1.删除值为key的所有结点


2.删除所有值重复的结点


1.3.4 插入
    先右后左

1.3.5 建表
    钩链顺序:先右后左
头插法
    始终插在头结点
    把头结点右边保留
    逆序

尾插法
    正序
    rear->next=p,rear=p;rear->next=NULL

合并
    删除相等结点

2.关于指针


    p->:结点本身
    p表示指针地址
        头结点
            统一空表与非空表操作
            第一个结点均为p->next
    p->data表示值,p->link表示地址


结点实现
基本操作
初始化
合并操作
查找定位删除操作
    O(n)
插入
    时间复杂度为O(n)
    将结点e放入ai的位置
删除
    后面的元素依次向前移
    时间复杂度为O(n)
3.链式存储
    存储元素的同时
    还要存储物理地址
    存储密度变为50%
双向链表
删除
基本操作
插入
    保右
    先右后左

对称性
    p->prior->next=p=p->next->prior
静态链表
    借用数组
    指针是指结点的相对地址(下标)


顺序表
    插入,删除复杂度高
    存储密度为100%
    数组是顺序表的一种表现形式
    前者是随机存放(离散化),后者必须依次排列(可以进行离散化)
为空
    head->next=head
表尾
    p->next=head
判别
操作
    除合并外均相等
循环链表
定义
约瑟夫问题
    两种算法

一:

类别
    带尾指针
    无头结点
    单循环链表
顺序表与链表的优缺点
顺序存取
    单链表
    查找为O(n)
随机存取
    顺序表
    查找任意一个元素为O(1)
    存储结构
数据元素有序且有限
注意点
一元多项式表示和相加
    指数不同:链表合并
    系数相同

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值