Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

단일 연결 목록을 구현하는 C++ 프로그램

<시간/>

단일 연결 목록은 자체 참조 구조를 사용하여 생성된 노드로 구성된 데이터 구조 유형입니다. 이러한 각 노드는 데이터와 다음 목록 노드에 대한 참조라는 두 부분을 포함합니다. 전체 연결 목록에 액세스하려면 첫 번째 목록 노드에 대한 참조만 필요합니다. 이것은 머리로 알려져 있습니다. 목록의 마지막 노드는 아무 것도 가리키지 않으므로 해당 부분에 NULL을 저장합니다.

단일 연결 리스트를 구현하는 프로그램은 다음과 같다.

예시

#include <iostream>
using namespace std;
struct Node {
   int data;
   struct Node *next;
};
struct Node* head = NULL;
void insert(int new_data) {
   struct Node* new_node = (struct Node*) malloc(sizeof(struct Node));
   new_node->data = new_data;
   new_node->next = head;
   head = new_node;
}
void display() {
   struct Node* ptr;
   ptr = head;
   while (ptr != NULL) {
      cout<< ptr->data <<" ";
      ptr = ptr->next;
   }
}
int main() {
   insert(3);
   insert(1);
   insert(7);
   insert(2);
   insert(9);
   cout<<"The linked list is: ";
   display();
   return 0;
}

출력

The linked list is: 9 2 7 1 3

위의 프로그램에서 Node 구조체는 연결 리스트 노드를 형성합니다. 여기에는 데이터와 다음 연결 목록 노드에 대한 포인터가 포함됩니다. 이것은 다음과 같이 주어집니다.

struct Node {
   int data;
   struct Node *next;
};

insert() 함수는 연결 리스트의 시작 부분에 데이터를 삽입합니다. new_node를 생성하고 new_node의 데이터 필드에 숫자를 삽입합니다. 그런 다음 new_node는 헤드를 가리킵니다. 마지막으로 head는 new_node입니다. 즉, 연결 목록이 거기에서 시작됩니다. 이것은 아래와 같습니다.

void insert(int new_data) {
   struct Node* new_node = (struct Node*) malloc(sizeof(struct Node));
   new_node->data = new_data;
   new_node->next = head;
   head = new_node;
}

display() 함수는 전체 연결 목록을 표시합니다. 첫 번째 ptr은 머리를 가리킵니다. 그런 다음 노드의 모든 데이터 값이 인쇄될 때까지 다음 노드로 계속 전달됩니다. 이것은 아래와 같습니다.

void display() {
   struct Node* ptr;
   ptr = head;
   while (ptr != NULL) {
      cout<< ptr->data <<" ";
      ptr = ptr->next;
   }
}

main() 함수에서 먼저 insert()를 호출하여 연결 목록에 다양한 값을 삽입합니다. 그런 다음 연결 목록이 표시됩니다. 이것은 아래와 같습니다.

int main() {
   insert(3);
   insert(1);
   insert(7);
   insert(2);
   insert(9);
   cout<<"The linked list is: ";
   display();
   return 0;
}