연결된 목록의 사본 만들기
2609 단어 clinkedlistbeginners
예 1:
입력 : 연결 리스트 : 4 6 2 8 1
Output : 연결 리스트의 복사본 : 4 6 2 8 1
예 2:
입력 : 연결 리스트 : 4 5 9 8 2
Output : 연결 리스트의 복사본 : 4 5 9 8 2
설명:
연결된 목록의 복사본을 만드는 C 프로그램:
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
struct node
{
int data;
struct node * next;
};
void displayLL(struct node * head)
{
struct node * temp;
temp = head;
temp=head;
while(temp!=0)
{
printf("%d ",temp->data);
temp = temp->next;
}
}
void copy(struct node *head)
{
struct node *temp = head;
struct node *temp1, *temp2, *head1;
temp1 = (struct node *)malloc(sizeof(struct node));
temp1->next = NULL;
temp1->data = temp->data;
head1 = temp1;
temp1->next = NULL;
temp = temp->next;
while(temp != NULL)
{
temp2 = (struct node *)malloc(sizeof(struct node));
temp2->data = temp->data;
temp1->next = temp2;
temp1 = temp2;
temp = temp->next;
}
printf("\n--------------------------------\n");
printf("Copy of original linked list : ");
displayLL(head1);
}
int main()
{
struct node *head = 0, *newnode, *temp;
int n, choice, newdata;
// Create Linked List //
printf("Enter the number of nodes in the list : ");
scanf("%d", &n);
if(n == 0)
{
printf("--------------------------------\n");
printf("Linked list cannot be empty");
exit(0);
}
for(int i = 1; i<=n; i++)
{
newnode = (struct node *)malloc(sizeof(struct node));
printf("Enter the data%d : ", i);
scanf("%d", &newnode->data);
newnode->next = 0;
if(head == 0)
{
head = temp = newnode;
}
else
{
temp->next = newnode;
temp = newnode;
}
}
printf("--------------------------------\n");
printf("Original linked list : ");
displayLL(head);
copy(head);
}
산출:
Enter the number of nodes in the list : 4
Enter the data1 : 3
Enter the data2 : 7
Enter the data3 : 3
Enter the data4 : 8
--------------------------------
Original linked list : 3 7 3 8
--------------------------------
Copy of original linked list : 3 7 3 8
Reference
이 문제에 관하여(연결된 목록의 사본 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dhanashreerugi/create-a-copy-of-a-linked-list-1blh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)