반응형
C++을 이용해 연결리스트를 구현합니다.
#include <iostream>
struct node
{
int data;
node *next;
};
struct linked_list
{
node *head = new node;
node *current = new node;
linked_list()
{
current = head;
}
// 맨 뒤에 노드를 추가
void append(int data)
{
node *new_node = new node;
new_node->data = data;
current->next = new_node;
current = new_node;
}
// n번째 노드 뒤에 노드 삽입
void insert(int n, int data)
{
node *new_node = new node;
node *prev = new node;
new_node->data = data;
prev = head;
// n-1 번째 노드까지 접근
for (int i = 0; i < n + 1; i++)
{
prev = prev->next;
}
// prev의 next를 new_node의 next로 설정
new_node->next = prev->next;
// prev의 next를 new_node로 설정
prev->next = new_node;
}
// n번째 노드의 데이터를 가져옵니다.
int get(int n)
{
node *node = head;
for (int i = 0; i < n + 1; i++)
{
node = node->next;
}
return node->data;
}
};
int main()
{
linked_list my_linked_list;
for (int i = 0; i < 10; i++)
{
my_linked_list.append(i);
}
for (int i = 0; i < 10; i++)
{
std::cout << my_linked_list.get(i);
}
my_linked_list.insert(4, 777);
std::cout << '\n';
for (int i = 0; i < 11; i++)
{
std::cout << my_linked_list.get(i);
}
}
반응형
'알고리즘 > 알고리즘+자료구조' 카테고리의 다른 글
[자료구조] 스택 구현하기 (C++) (0) | 2022.03.08 |
---|