반응형
무하지
무하지
무하지
전체 방문자
오늘
어제
  • 분류 전체보기
    • 알고리즘
      • 알고리즘+자료구조
      • 문제풀이
    • Python
      • 머신러닝
    • 운영체제
    • Javascript
    • React
    • C#
    • C++
    • Java
    • Kotlin
    • 수학
      • 통계학
    • 기타
    • Computer Science

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
무하지

무하지

알고리즘/알고리즘+자료구조

[자료구조] 연결리스트 구현하기 (C++)

2022. 3. 8. 22:34
반응형

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
    '알고리즘/알고리즘+자료구조' 카테고리의 다른 글
    • [자료구조] 스택 구현하기 (C++)
    무하지
    무하지

    티스토리툴바