将循环链表插在单链表头部
2015-09-28 00:47
309 查看
#include<stdio.h> #include<stdlib.h> typedef struct link_list { int info; struct link_list *next; }node; node *init() { return NULL; } node *create_headlink() //创建循环链表 { int x; node *head=(node *)malloc(sizeof(node)); node *q,*p=head; scanf("%d",&x); if(x!=-1) head->info=x; else return NULL; while(scanf("%d",&x)&&x!=-1) { q=(node *)malloc(sizeof(node)); q->info=x; p->next=q; p=p->next; } p->next=head; return head; } node *create_link() //创建无头节点的单链表 { int x; node *head,*tail,*q; head=(node*)malloc(sizeof(node)); tail=head; scanf("%d",&x); if(x!=-1) head->info=x; else return NULL; while(scanf("%d",&x)&&x!=-1) { q=(node *)malloc(sizeof(node)); q->info=x; tail->next=q; tail=tail->next; } tail->next=NULL; return head; } void display(node *head) //打印无头节点的链表 { node *p=head; if(!head) { printf("链表是空的\n"); }else { while(p) { printf("%-5d",p->info); p=p->next; } } printf("\n"); } void display2(node *head)//打印循环链表 { node *p=head; if(!head) { printf("链表是空的\n"); }else { printf("%-5d",head->info); p=head->next; while(p!=head) { printf("%-5d",p->info); p=p->next; } } printf("\n"); } node *find_rear(node *head) //循环链表找尾指针 { node *p=head; if(!head) return NULL; while(p->next!=head) p=p->next; return p; } node *insert_linklist(node *head1,node *head2) //将循环链表插在单链表前面 { node *rear; rear=find_rear(head1); //找到循环链表尾指针 rear->next=head2; //使尾指针指向单链表的头指针 return head1; } int main() { node *head1,*head2; head1=create_headlink(); printf("循环链表:\n"); display2(head1); head2=create_link(); printf("不带头结点的单链表:\n"); display(head2); insert_linklist(head1,head2); printf("合并后的单链表:\n"); display(head1); return 0; }
相关文章推荐
- apache httpd的安装和配置文件和其说明
- UVALive 5990 Array Diversity
- BAT带队烧钱圈地华为们猛追云计算
- 【转载,万人坑】const char*, char const*, char*const的区别
- Hbase用户权限
- c++设计模式-----observer(观察者模式)
- 读《 江西59岁老人用鼠药结束了妻子性命》有感
- oracle交流趣事--主机名变更在跑某报告信息时变更的小细节
- 获取当前程序可执行文件的所在路径
- select样式美化
- [九度OnlineJudge][剑指Offer]题目1387:斐波那契数列
- OJ学习笔记2
- CSS按钮样式分享
- HDU 4293 Groups(dp)
- GitHub入门与实践一
- IOS中内存的分配
- apache双向HTTPS SSL认证配置
- DirectX 初始化DirectX(第一方式)
- Aggregate Class(聚合类)的使用
- 优化LINUX内核阻挡SYN洪水攻击