- 博客(24)
- 收藏
- 关注
原创 number26 A,B两个单链表递增有序,找出其公共元素
number 26:从A,B中找出公共元素产生单链表C,要求不破坏A,B结点。number27 从A,B中找出公共元素并存放于A链表中。取A链表的头结点,若有重复元素,则使用尾插法插入A链表中。注意:重复元素取完之后,要释放剩余的结点。
2023-08-09 21:29:11 172
原创 number24 两个递增有序的单链表,合并成一个
取A链表的头结点作为合并后链表的头结点,p指向A链表的开始节点,q指向B。思想与24相同,区别在于,25使用头插法将其插入,而24使用尾插法。链表的开始结点,重复进行比较p、q的data值。
2023-08-08 12:05:33 149
原创 number22 将一个单链表{a1,b1,a2,b2‘‘‘‘‘‘an,bn}拆分成{a1,a2,‘‘‘‘‘‘an}和{b1,b2,‘‘‘‘‘‘bn}
将一个单链表{a1,b1,a2,b2''''''an,bn}拆分成{a1,a2,''''''an}和{b1,b2,''''''bn}删除递增链表中重复的元素。
2023-08-06 20:42:06 131
原创 number21 将单链表A分为AB两个链表,使A中含奇数位置,B中含偶数位置,且相对位置不变
最初的想法时是设置一个int型变量i对位置进行记录,如果使偶数,就将结点接入B链表中,奇数则不用管。没有上述方法容易理解,但也能够实现。由于其加入两个链表的次序始终为一前一后,所以我们可以设计两个指针,指向头结点,依次进行连接。
2023-08-02 20:50:50 133
原创 number18 删除单链表的最小值
通过遍历单链表,找到最小值并设置一个指针指向该最小值结点;遍历结束后,如果该最小值为单链表的开始结点,则直接将表头L= L->next,否则,遍历单链表,查找最小值结点的前驱节点,进行删除。遍历单链表找出最小值,并设置一个指针记录最小值的前驱结点,遍历完成后通过该指针将最小值结点删除。
2023-08-01 18:42:48 217 1
原创 number14 删除带头结点单链表第一个值为x的结点
程序终止条件:已找到且删除 || 未找到但链表已空。删除带头结点单链表中第一个值为x的结点。
2023-07-30 10:19:33 398 1
原创 number11 若一个整数序列有过半相同元素,找出主元素
设置一个与L等长的顺序表A,由于元素值>0且<n,因此我们将顺序表L中的元素值的个数保存在A中 A数组下标=B元素值-1,并用A中的data记录元素出现的次数。若元素值未规定,可以用下述方法,设置一个顺序表A用来记录L中对应位置的元素的重复的个数,再通过比较A表中最大值是否大于长度的一半来判断最大值是否存在。
2023-07-24 18:14:25 129
原创 number 7从有序表中删除所有值重复的元素
采用覆盖的思想,第一个元素肯定在新顺序表中,将第一个元素与后续元素比较,直到遇到一个不相等的元素再加入到新的顺序表中,再将新顺序表的最后一个元素与后续的元素比较·····依次往下进行。
2023-07-21 11:14:39 211 1
原创 number 5 删除顺序表中值为x的元素
算法2:删除值为x的元素,通过设置一个flag,来记录值为x的元素个数,从而控制非x值存储的位置。算法3:如果检测出值等于x的元素,则将其后续所有元素向前移动一位,表长length-1。思想比较明白易懂,但时间复杂度较高。算法1:将删除某个值为x的元素转化为保留所有值不等于x的元素。
2023-07-20 09:34:23 170
原创 number 4 实现函数的逆转
将(a1,a2,a3```an,b1,b2,```,bm)转换成(b1,b2,```,bm,a1,a2,a3```an)其中所传递的函数x为逆转的开始位置,y为结束位置(不要将x,y与m,n混淆)本质就是实现函数的逆置,从两端节点开始进行交换位置,直到到达中点。
2023-07-20 09:14:20 58
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人