Linux 数据结构 链表

1.段错误调试方法:
    1.按照网上的方法配置Ubuntu,允许生成core文件
    2.重新编译代码并加入-g选项(允许进行GDB调试)
    3.ulimit -c unlimited 
      不限制core文件的生成的大小
    4.执行代码,复现段错误,产生包含出错信息的core文件(检查core文件是否生成)
    5.gdb a.out core 
      查看段错误产生的位置
      bt 
      查看段错误时的堆栈信息
      p 变量名 
      查看段错误时的变量信息
2..单向链表操作:

  简单操作:

   增删改查

  复杂操作:
    1.查找链表中间节点

        快指针走两步,慢指针走一步,快到结尾,慢是中间结尾。
    2.查找链表倒数第k个节点

        快先走k步,然后快慢同步,快到结尾,慢是倒数第k个。
    3.链表的倒置(反转)

        断开头的后面,把后面重新头插,实现倒置
    4.链表的排序(冒泡排序、选择排序)

        冒泡,定义俩节点指针1,2初始化,一个标记指针=NULL,1,2的值比较,大的向后,当2=标记节点指针,则结束本次循环,令标记指针=1指针,1,2复位再重复,当标记指针=头节点的后第二节点指针则冒泡结束

        选择:最小值指针,交换指针,行走指针,行走指针比最小指针值小,则最小指针指向行走指针此时位置,遍历完后,对比交换指针和最小指针,需要交换数据则交换,重复
    5.已知链表中间某个节点地址,不知道头结点地址,如何删除该节点

        将此节点后一个值覆盖这一个,删去后一个节点。
    6.如何判断一个链表是否有环?环长?环的入口位置?
        是否有环:快指针每次走2步,慢指针每次走1步,快慢指针相遇则说明有环
        如何计算环长:标记相遇的位置,让指针继续向后走,没走一步计算器自加,走回到标记位置,则计算器值即为环长
        如何计算环入口位置:将一个指针从第一个节点向后走,将一个指针从相遇点向后走,两个指针相遇的位置即为环入口的位置
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值