728x90
반응형
이전 포스팅한 연결 리스트의 확장 버전으로
https://devsalix.tistory.com/233
[기초] C++ Linked List (연결 리스트)
연결 리스트(linked list)는 데이터 요소의 집합을 순차적으로 저장하는 선형 자료구조입니다.배열과 달리, 연결 리스트에서는 데이터 요소들이 메모리의 연속적인 위치에 저장되지 않고각 요소가
devsalix.tistory.com
양방향 연결 리스트의 예제를 보여 드리겠습니다
#include <iostream>
// 노드 정의
struct Node {
int data;
Node* prev;
Node* next;
};
// 연결 리스트 클래스 정의
class DoublyLinkedList {
private:
Node* head;
public:
DoublyLinkedList() {
head = nullptr;
}
// 리스트에 데이터 추가
void insert(int newData) {
Node* newNode = new Node;
newNode->data = newData;
newNode->prev = nullptr;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
} else {
Node* temp = head;
while (temp->next != nullptr) {
temp = temp->next;
}
temp->next = newNode;
newNode->prev = temp;
}
}
// 리스트 출력
void display() {
Node* temp = head;
while (temp != nullptr) {
std::cout << temp->data << " ";
temp = temp->next;
}
std::cout << std::endl;
}
// 리스트 역순 출력
void displayReverse() {
Node* temp = head;
while (temp->next != nullptr) {
temp = temp->next;
}
while (temp != nullptr) {
std::cout << temp->data << " ";
temp = temp->prev;
}
std::cout << std::endl;
}
};
int main() {
DoublyLinkedList list;
list.insert(1);
list.insert(2);
list.insert(3);
list.insert(4);
std::cout << "정방향: ";
list.display(); // 정방향 출력
std::cout << "역방향: ";
list.displayReverse(); // 역방향 출력
return 0;
}
이 코드는 기본적인 양방향 연결 리스트를 구현합니다.
'insert()' 함수는 새로운 데이터를 리스트에 추가하고,
'display()' 함수는 리스트를 순방향으로 출력합니다.
'displayReverse()' 함수는 리스트를 역방향으로 출력합니다.
메인 함수에서는 리스트에 데이터를 추가하고, 순방향과 역방향으로 출력해 봅니다.
결과물
정방향: 1 2 3 4
역방향: 4 3 2 1
제 글이 도움이 되셨다면 댓글 & 공감 부탁드려요 😀
728x90
반응형
'Application > 기초' 카테고리의 다른 글
[기초] C++ Linked List : 원형 이중 연결 리스트 (0) | 2024.05.15 |
---|---|
[기초] C++ Linked List : 원형 연결 리스트 (0) | 2024.05.14 |
[기초] C++ Linked List : 연결 리스트 (0) | 2024.05.12 |
[기초] C++ 알고리즘 : 계수 정렬 (Counting Sort) (0) | 2024.05.11 |
[기초] C++ 알고리즘 : 기수 정렬 (Radix Sort) (0) | 2024.05.10 |