-
연결 리스트 (Linked List)언어/C, C++ 2020. 12. 31. 20:02
#pragma once #include <iostream> using namespace std; struct Node { int data; Node* next; }; class LinkedList { private: int m_count; Node* m_head; public: LinkedList(); ~LinkedList(); void Insert(int _position, int _item); void Delete(int _position); int Retrieve(int _position); bool IsEmpty(); int GetLength(); };
LinkedList.h
#include "LinkedList.h" LinkedList::LinkedList() : m_count(0), m_head(nullptr) { } LinkedList::~LinkedList() { } void LinkedList::Insert(int _position, int _item) { Node* currentNode = m_head; Node* insertNode; insertNode = new Node; insertNode->data = _item; if (_position == 0 || m_head == nullptr) { insertNode->next = m_head; m_head = insertNode; m_count++; return; } for (int i = 0; i < _position - 1; i++) currentNode = currentNode->next; insertNode->next = currentNode->next; currentNode->next = insertNode; m_count++; } void LinkedList::Delete(int _position) { Node* currentNode = m_head; Node* deleteNode; if (_position == 0) { deleteNode = m_head; m_head = m_head->next; delete deleteNode; m_count--; return; } for (int i = 0; i < _position - 1; i++) currentNode = currentNode->next; deleteNode = currentNode->next; currentNode->next = deleteNode->next; delete deleteNode; m_count--; } int LinkedList::Retrieve(int _position) { Node* temp = m_head; for (int i = 0; i < _position; i++) temp = temp->next; return temp->data; } bool LinkedList::IsEmpty() { return m_count == 0; } int LinkedList::GetLength() { return m_count; }
LinkedList.cpp
'언어 > C, C++' 카테고리의 다른 글
연결 리스트 스택 (Linked List Stack) (0) 2021.01.13 배열 스택 (Array Stack) (0) 2021.01.12 이중 연결 리스트 (DoubleLinkedList) (0) 2021.01.05 배열 리스트 (Array List) (0) 2020.12.29 로또(Lotto) 프로그램 (0) 2020.08.20