数据结构 链表 循环单链表的建立 C语言版
来源:互联网 发布:centos 7如何安装rpm包 编辑:程序博客网 时间:2024/05/21 22:41
#include <cstdio>#include <stdlib.h>typedef struct Node{ int data; struct Node * next;} Node,* Linklist; //定义链表的结点,链表头void Initlist (Linklist *CL) //初始化链表{ *CL=(Linklist)malloc(sizeof(Node)); (*CL)->next=*CL; //初始化循环单链表的关键}void CreateFromTail(Linklist CL) //尾插发建表{ Node *r,*s; r=CL; //r总是指向链表的最后结点,s是新的结点 int flag=1; int num; while(flag) { scanf("%d",&num); if(num!= -1) { s=(Node *) malloc(sizeof(Node)); s->data=num; r->next=s; r=s; } else{ flag=0; r->next=CL; } } return ;}void Output(Linklist CL) //输出循环单链表{ Node *temp; temp=CL->next; while(temp != CL) { printf("%d ",temp->data); temp=temp->next; } printf("\n");}Linklist Unionlist(Linklist LA ,Linklist LB) //循环单链表的合并{ Node *p,*q; //用指针结点p,q表示LA LB的表尾指针 p=LA; q=LB; while(p->next != LA) p=p->next; while(q->next != LB) q=q->next; q->next=LA; p->next=LB->next; free(LB); return (LA);}int main(){ Linklist CL,CL1,CL2,CL3; Initlist(&CL); printf("输入循环单链表的值 以-1为结束标志\n"); CreateFromTail(CL); Output(CL); printf("输入要合并的两个单链表的值 以-1为结束标志\n"); Initlist(&CL1); Initlist(&CL2); CreateFromTail(CL1); CreateFromTail(CL2); CL3=Unionlist(CL1,CL2); printf("合并成的循环单链表为\n"); Output(CL3); return 0;}
阅读全文
0 0
- 数据结构 链表 循环单链表的建立 C语言版
- 数据结构 链表 单链表的建立 C语言版
- 数据结构 图的建立 C语言版
- 数据结构 栈的建立及入栈出栈操作 C语言版
- 数据结构 顺序串的建立及其函数 C语言版
- 数据结构 链队列的建立及其函数 C语言版
- 数据结构 树 二叉树的建立及遍历 C语言版
- 数据结构 链表 合并两个有序的单链表 C语言版
- 数据结构C语言版单链表的实现
- 数据结构C语言版--单链表的基本功能实现
- 学习笔记------数据结构(C语言版) 队列的顺序存储/循环队列
- 指尖上的代码[C语言版]-<7>数据结构之单链表
- 数据结构——单链表的实现——C语言版
- 数据结构与算法(C语言版)__循环链表
- 循环队列的实现(C语言版)
- 清华大学出版社 数据结构(C语言版)的实现
- 数据结构 二叉树的实现 c语言版
- 数据结构c语言版串的操作
- redis学习总结
- 机器学习和大数据中运用的距离计算方法
- spinner的详细介绍
- 我的10元上网利器
- CentOS7下搭建hadoop2.7.3完全分布式
- 数据结构 链表 循环单链表的建立 C语言版
- spring-boot thymeleaf模板学习
- Java匿名内部类实现总结
- Unity中shader实现绘制六边形网格
- Android开发艺术探索--读后总结之Activity(一)
- 大话设计师 第四章 开放-封闭原则
- DHCP协议
- Spring学习
- 【HDU6053】TrickGCD(莫比乌斯容斥)