How to use linked list ?

Probelm Discription:

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

First Method to solve the Problem...

View Code
 1 public class LinkedList
 2 {
 3  
 4     public static void main( String[] args )
 5     {
 6         int[] A = { 1, 2, 3, 4, 5, 6 };
 7         int[] B = { 7, 8, 9, 10, 11, 12 };
 8  
 9         int[] C = new int[ A.length + B.length ];
10  
11         for ( int index = 0; index < C.length / 2; index += 2 )
12         {
13             C[ index ] = A[ index ];
14             C[ index + 1 ] = B[ index ];
15         }
16  
17         for ( int index = 0; index < C.length; index++ )
18         {
19             System.out.printf( "%d, ", C[ index ] );
20         }
21  
22     }
23  
24 }

Second Method to solve the Problem...

View Code
  1 #include<iostream>
  2 #include<conio.h>
  3  
  4 using namespace std;
  5  
  6 typedef struct node
  7 {
  8     int data;    // will store information
  9     node *next;    // the reference to the next node
 10 };
 11  
 12 //Show the link list
 13 void printLinkList(node *head)
 14 {
 15     while(head != NULL)
 16     {
 17         printf("%d ",head->data);
 18         head = head->next;
 19     }
 20 }
 21  
 22 int main()
 23 {
 24     node *head1 = NULL;    //empty linked list
 25     node *head2 = NULL;    //empty linked list
 26     node *head3 = NULL;    //empty linked list
 27     node *traverse = NULL;
 28     node *traverse1 = NULL;
 29     node *traverse2 = NULL;
 30     node *traverse3 = NULL;
 31     node *temp = NULL;
 32  
 33 
 34     int counter = 0;
 35     int LL1[6] = {1,2,3,4,5,6};
 36     int LL2[6] = {7,8,9,10,11,12};
 37     
 38     //Insert Data in 1 st link list
 39     while(counter < 6)
 40     {
 41         if(head1 == NULL)
 42         {
 43             node *temp;                        
 44             temp = (node*)malloc(sizeof(node));    
 45             temp->data = LL1[counter++];            
 46             temp->next = NULL;            
 47             head1 = traverse = temp;                
 48         }
 49         else
 50         {
 51             temp = NULL;                        
 52             temp = (node*)malloc(sizeof(node));    
 53             temp->data = LL1[counter++];            
 54             temp->next = NULL;            
 55             traverse->next = temp;                
 56             traverse = traverse->next;
 57         }
 58     }
 59  
 60     counter = 0;
 61     traverse = NULL;
 62     //Insert Data in 2nd link list
 63     while(counter < 6)
 64     {
 65         if(head2 == NULL)
 66         {
 67             node *temp;                        
 68             temp = (node*)malloc(sizeof(node));    
 69             temp->data = LL2[counter++];            
 70             temp->next = NULL;            
 71             head2 = traverse = temp;                
 72         }
 73         else
 74         {
 75             temp = NULL;                        
 76             temp = (node*)malloc(sizeof(node));    
 77             temp->data = LL2[counter++];            
 78             temp->next = NULL;            
 79             traverse->next = temp;                
 80             traverse = traverse->next;
 81         }
 82     }
 83  
 84     //Now insert in the third link list
 85     counter = 0;
 86     traverse = NULL;
 87     traverse1 = head1;
 88     traverse2 = head2;
 89     while(traverse1 != NULL && traverse2 != NULL)
 90     {
 91         if(head3 == NULL && traverse1 != NULL)
 92         {
 93             temp = NULL;                        
 94             temp = (node*)malloc(sizeof(node));    
 95             temp->data = traverse1->data;            
 96             temp->next = NULL;            
 97             head3 = traverse3 = temp;
 98             traverse1 = traverse1->next;
 99         }
100         else if(traverse1 != NULL)
101         {
102             temp = NULL;                        
103             temp = (node*)malloc(sizeof(node));    
104             temp->data = traverse1->data;            
105             temp->next = NULL;            
106             traverse3->next = temp;
107             traverse1 = traverse1->next;
108             traverse3 = traverse3->next;
109         }
110  
111         if(traverse2 != NULL)
112         {
113             temp = NULL;                        
114             temp = (node*)malloc(sizeof(node));    
115             temp->data = traverse2->data;            
116             temp->next = NULL;            
117             traverse3->next = temp;
118             traverse2 = traverse2->next;
119             traverse3 = traverse3->next;
120         }
121     }
122     printLinkList(head1);
123     printf("\n");
124     printLinkList(head2);
125     printf("\n");
126     printLinkList(head3);
127     printf("\n");
128     return 0;
129 }

 

 

 

转载于:https://www.cnblogs.com/xielechuan/archive/2012/05/03/2481281.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值