我是靠谱客的博主 大方蓝天,最近开发中收集的这篇文章主要介绍有两个循环单链表,头指针分别是head1和head2,实现算法将链表head2连接到head1之后,连接后的链表仍然是循环链表的形式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

头文件:函数的声明

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

typedef int ElemType;
typedef struct Node 
{
	ElemType data;
	struct Node* next;
}ListNode,*LinkList;

LinkList CreateCycList(int n);//创建循环单链表
void DisplayCycList(LinkList head);
LinkList Link(LinkList head1,LinkList head2);


函数的定义

#include "循环链表.h"

LinkList CreateCycList(int n)
{
	ListNode *p,*q;
	LinkList head = NULL;
	ElemType e;
	int i = 1;
	q = NULL;
	while(i <= n)
	{
		printf("请输入第%d个元素:",i);
		scanf("%d",&e);
		if(i == 1)
		{
			head=(LinkList)malloc(sizeof(ListNode));
			head->data = e;
			head->next = NULL;
			q = head;//第一个结点q始终指向最后一个结点
		}
		else
		{
			p = (LinkList)malloc(sizeof(ListNode));
			p->data = e;
			p->next = NULL ;
			q->next = p;
			q = p;//q始终指向最后一个结点
		}
		i++;
	}
	if(q != NULL)
	{
		q->next = head;//将最后一个结点的指针指向头结点指针,形成循环链表
	}
	return head;
}

void DisplayCycList(LinkList head)
{
	ListNode *p;
	p = head;
	if(p == NULL)
	{
		printf("该链表是空表");
		return;
	}
	while(p->next != head)
	{
		printf("%4d",p->data );
		p = p->next ;
	}
	printf("%4dn",p->data);
}
LinkList Link(LinkList head1,LinkList head2)
{
	ListNode *p,*q;
	p = head1;
	q = head2;
	while(p->next != head1)
	{
		p = p->next ;
	}
	while(q->next != head2)
	{
		q = q->next ;
	}
	p->next = head2;
	q->next = head1;
	return head1;
}


函数的应用

#include "循环链表.h"

int main(void)
{
	LinkList h1,h2;
	int n;
	printf("创建一个单链表h1:n");
	printf("请输入元素个数:");
	scanf("%d",&n);
	h1 = CreateCycList(n);
	printf("创建一个单链表h2:n");
	printf("请输入元素个数:");
	scanf("%d",&n);
	h2 = CreateCycList(n);
	printf("输出循环单链表h1:n");
	DisplayCycList(h1);
	printf("输出循环单链表h2:n");
	DisplayCycList(h2);
	h1 = Link(h1,h2);
	printf("输出连接后的循环单链表h1+h2:n");
	DisplayCycList(h1);
	return 0;
}


最后

以上就是大方蓝天为你收集整理的有两个循环单链表,头指针分别是head1和head2,实现算法将链表head2连接到head1之后,连接后的链表仍然是循环链表的形式的全部内容,希望文章能够帮你解决有两个循环单链表,头指针分别是head1和head2,实现算法将链表head2连接到head1之后,连接后的链表仍然是循环链表的形式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部