数据结构:链表

 顺序表:数组要连续的内存,只要知道起始地址

线性结构顺序表:数组要连续的内存,只要知道起始地址:链表

申请完全随机的节点地址

每个节点分为数据域指针域,

   0x100    0x600       0x500     0x700

每个节点都有地址

指针域里面存放下一个节点的地址,最后一个节点指针域NULL,还是一个线性结构

头节点一般不保存数据 ,链表的地址保存头节点的地址:头指针

 

插入:尾插法(最后一个节点后面),头插法(第一个节点前面) 

申请节点,修改指针 

遍历:

不用printf打印

采用反调函数show

随机srand

链表的反转

 

删除插入反转! 代码背下来

前驱

单链表:只能向前,不能回头

用双指针快慢

清空要释放内存

释放之前要先把链表形成,不能打断了

笔试题 

链表相交(判断是否相交)

有重合节点,最后一个节点一定相同

Node *p1 = head1,*p2 = head2;

while (p1->next)
{
    p1=p1->next;
}

while(p2->next)
{
    p2 = p2->next;
}

if(p1 == p2)
{
    
}

判断哪一点相交

计算长度差,两个指针剩余长度相同时,相同的为相交点

链表环(判断是否有环)

分为快慢指针,快的每次走两步,慢的指针走一步,某个时刻相等,肯定有环

合并两个有序的链表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值