如何使用链表? [英] How to use linked list ?

查看:61
本文介绍了如何使用链表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

两个链接列表如下所示:
A:1、2、3、4、5、6
B:7、8、9、10、11、12
如何创建第三个链接列表,使其顺序如下.
C:1,7,2,8,…..,6,12
在此先感谢
问候

Two linked lists are given as
A: 1, 2, 3, 4, 5, 6
B: 7, 8, 9, 10, 11, 12
how to create a third linked list so that it is in the following order.
C: 1,7,2,8,…..,6,12
thanks in advance
regards

推荐答案

创建一个新列表并从A和B交替添加元素.您的问题到底在哪里?
Create a new list and add elements alternately from A and B. What exactly is your problem?


它应该上班:

It should be work:

public class LinkedList
{

	public static void main( String[] args )
	{
		int[] A = { 1, 2, 3, 4, 5, 6 };
		int[] B = { 7, 8, 9, 10, 11, 12 };

		int[] C = new int[ A.length + B.length ];

		for ( int index = 0; index < C.length / 2; index += 2 )
		{
			C[ index ] = A[ index ];
			C[ index + 1 ] = B[ index ];
		}

		for ( int index = 0; index < C.length; index++ )
		{
			System.out.printf( "%d, ", C[ index ] );
		}

	}

}


检查C中的以下链接列表.它以前两个链接列表的替代顺序填充第三个链接列表

check the below linklist in C. It fills the third linklist in alternate order of first two link list

#include<iostream>
#include<conio.h>

using namespace std;

typedef struct node
{
	int data;	// will store information
	node *next;	// the reference to the next node
};
 
//Show the link list
void printLinkList(node *head)
{
	while(head != NULL)
	{
		printf("%d ",head->data);
		head = head->next;
	}
}

int main()
{
	node *head1 = NULL;	//empty linked list
	node *head2 = NULL;	//empty linked list
	node *head3 = NULL;	//empty linked list
	node *traverse = NULL;
	node *traverse1 = NULL;
	node *traverse2 = NULL;
	node *traverse3 = NULL;
	node *temp = NULL;


	int counter = 0;
	int LL1[6] = {1,2,3,4,5,6};
	int LL2[6] = {7,8,9,10,11,12};
	
	//Insert Data in 1 st link list
	while(counter < 6)
	{
		if(head1 == NULL)
		{
			node *temp;						
			temp = (node*)malloc(sizeof(node));	
			temp->data = LL1[counter++];			
			temp->next = NULL;			
			head1 = traverse = temp;				
		}
		else
		{
			temp = NULL;						
			temp = (node*)malloc(sizeof(node));	
			temp->data = LL1[counter++];			
			temp->next = NULL;			
			traverse->next = temp;				
			traverse = traverse->next;
		}
	}

	counter = 0;
	traverse = NULL;
	//Insert Data in 2nd link list
	while(counter < 6)
	{
		if(head2 == NULL)
		{
			node *temp;						
			temp = (node*)malloc(sizeof(node));	
			temp->data = LL2[counter++];			
			temp->next = NULL;			
			head2 = traverse = temp;				
		}
		else
		{
			temp = NULL;						
			temp = (node*)malloc(sizeof(node));	
			temp->data = LL2[counter++];			
			temp->next = NULL;			
			traverse->next = temp;				
			traverse = traverse->next;
		}
	}

	//Now insert in the third link list
	counter = 0;
	traverse = NULL;
	traverse1 = head1;
	traverse2 = head2;
	while(traverse1 != NULL && traverse2 != NULL)
	{
		if(head3 == NULL && traverse1 != NULL)
		{
			temp = NULL;						
			temp = (node*)malloc(sizeof(node));	
			temp->data = traverse1->data;			
			temp->next = NULL;			
			head3 = traverse3 = temp;
			traverse1 = traverse1->next;
		}
		else if(traverse1 != NULL)
		{
			temp = NULL;						
			temp = (node*)malloc(sizeof(node));	
			temp->data = traverse1->data;			
			temp->next = NULL;			
			traverse3->next = temp;
			traverse1 = traverse1->next;
			traverse3 = traverse3->next;
		}

		if(traverse2 != NULL)
		{
			temp = NULL;						
			temp = (node*)malloc(sizeof(node));	
			temp->data = traverse2->data;			
			temp->next = NULL;			
			traverse3->next = temp;
			traverse2 = traverse2->next;
			traverse3 = traverse3->next;
		}
	}
	printLinkList(head1);
	printf("\n");
	printLinkList(head2);
	printf("\n");
	printLinkList(head3);
	printf("\n");
	return 0;
}
</conio.h></iostream>


这篇关于如何使用链表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆