- 博客(5)
- 收藏
- 关注
原创 链表经典oj题复习
如果有交点的话,用快慢指针,定义一个fast和一个slow,求出两个链表的长度count1和count2,将fast赋值给长的链表,并让他走|count1-count2|步,然后再让fast和slow同时走,当他们相遇的那个节点就是他们相交的节点。思路:开辟两个新链表,用cur去遍历原来的链表,将原链表中大于x的节点尾插到ghead中,小于x的节点尾插到lhead中,同时用gtail和ltail去同步更新他们的尾节点,最后将ltail连接到ghead中即可。5.将两个有序链表合并为一个新的有序链表并返回。
2024-05-17 16:36:01
254
原创 链表入门oj复习
这个也是使用快慢指针fast和slow,这次是在空间上控制他们的距离,先让fast走k-1步,此时slow的值为以fast为基础的倒数第k个值,在让fast和slow同时走,直到fast走到结尾,此时的slow就是倒数第k个节点,这个是在空间上控制快慢指针的关系。使用快慢指针,从时间上控制他们之间的关系,定义fast和slow,让slow走一步,然后让fast走两步,也就是fast走的路程一定是slow的两倍知道fast快指针指向结尾,此时慢指针slow就是中间节点。
2024-05-14 13:49:18
191
3
原创 顺序表的增删查改复习
首先判断顺序表是否为空表有两个方法,1是用assert断言assert(pc->size>0),也就是只有当size大于零的时候才会进行下一步,否则会在exe程序中报错 2是用一个if语句进行拦截,也就是if(pc->size==0)则直接return,也可以达到目的。tips:1.当扩容的时候需要先用一个临时变量接受地址,因为扩容可能是异地扩容,也可能是本地扩容,最后将该地址重新赋值给原来的地址。2.插入的时候需要考虑坐标的合法性,可以用if也可以直接用assert来断言。2.首先是对顺序表的初始化。
2024-05-10 16:28:43
218
原创 C语言简易通讯录的制作
想要删除首先的查找,如果存在则可以删除,如果不存在就不能删除,可以写一个FindName函数来进行查找如果找到则返回下标,如果没找到就返回-1(可以自己设计),第二种情况,入如果通讯录为空也不能进行删除,删除操作就是把后面的变量依次赋值给前面的变量(从要删除的该变量起),最后count减减,即删除成功。(2).我们使用结构体变量来存放通讯录的信息,结构体变量中应该存在两个元素,一个是存放信息的元素,另外一个用来存放通讯录中含有的信息的个数,存放信息的元素又可以使用一个结构。替换,修改,显示功能罗列出框架。
2024-04-23 17:05:34
327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人