数据结构之俩循环单链表合并
来源:互联网 发布:ubuntu引导分区大小 编辑:程序博客网 时间:2024/06/06 10:47
这段时间要好好调整一下自己了,发现基础才是王道,所以打算好好铺一铺我滴c指针这一块了,所以数据结构将会断更一段时间,不过接下来要和大家见面的就是我们上次的循环单链表之合并
题目:将链表a和链表b合并为链表c
算法思想
将a链表的尾指针reara与b链表的第一个节点链接起来,并且修改b链表的尾指针rearb,使得它指向链表a的头结点
代码
#include<stdio.h>#include<malloc.h>typedef struct node{ int data; struct node*next;}node,*list;list L_list(){ list llist; int num; node*p; llist=(node*)malloc(sizeof(struct node)); llist->data=-1; llist->next=llist; puts("input value -1 over"); scanf("%d",&num); while(num!=-1) { p=(node*)malloc(sizeof(struct node)); p->data=num; p->next=llist->next; llist->next=p; scanf("%d",&num); } p=llist; while(p->next!=llist) { p=p->next; } return p;}list merge(list reara,list rearb){ node *p; p=reara->next; reara->next=rearb->next->next; free(rearb->next); rearb->next=p; return rearb;}void print(list cl){ node*p; p=cl->next->next; while(p!=cl->next) { printf("%d ",p->data); p=p->next; } printf("\n"); }int main(){ list clista,clistb,clistc; printf("input clista:\n"); clista=L_list(); puts("the clista:"); print(clista); printf("input clistb:\n"); clistb=L_list(); puts("the clistb:"); print(clistb); clistc=merge(clista,clistb); puts("the merge:\n"); print(clistc); return 0;}
总结
这一次的代码主要精髓在于如何处理两个链表合并后的关系,所以这一次的难题就是这里了
1 0
- 数据结构之俩循环单链表合并
- 数据结构之循环单链表
- 数据结构学习(四)——循环单链表的操作之合并
- java数据结构之循环单链表
- 【学习总结】数据结构之循环链表和循环链表合并
- 数据结构之循环链表操作3-(合并,拆分,插入,删除,建立等)
- 经典数据结构与算法之循环单链表
- 数据结构之线性结构 --循环单链表
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构之循环队列
- 数据结构 之 循环队列
- 数据结构之循环队列
- YOLO9000: Better,Faster,Stronger论文笔记
- 初式shell
- github入门~~代码下载与提交
- redis整合spring
- Linux-shell基础常用命令总结
- 数据结构之俩循环单链表合并
- 据说用CSDN写代码,放到word里面很好看,试试
- 希望能帮到各位校园网同学对于windows没有更新的同学防止永恒之蓝攻击
- 内存对齐
- bzoj1296
- 创新实训5.14 Scrapy学习、信息提取
- mysql入门(分组查询八)
- 再看泛型
- 继承EditorWindow实现画布