자료구조 (5) 썸네일형 리스트형 Queue Queue 전체 구조LIFO(Last In First Out) 구조로 먼저 들어간 데이터가 먼저 추출되는 구조를 가집니다.Nodetemplate class Node { // 노드 클래스public: Node* m_Next; T m_Data;public: Node() { m_Next = nullptr; }; Node(const T& data) { m_Data = data; m_Next = nullptr; }; ~Node() { m_Next = nullptr; }};Node* m_Next 변수는 다음으로 가는 변수의 주소를 담고 있습니다. 즉 아래에서부터 데이터를 꺼내므로 자신의 위에있는 Node의 주소를 가르키며 .. Stack Stack 전체 구조Stack은 FIFO(First In First Out) 선입선출 구조를 가지고 있으며 바닥부터 데이터를 넣어서 데이터를 넣은 역순으로 데이터를 꺼냅니다.Nodetemplate class Node { // 노드 클래스public: Node* m_Next; T m_Data;public: Node() { m_Next = nullptr; }; Node(const T& data) { m_Data = data; m_Next = nullptr; }; ~Node() { m_Next = nullptr; }};Node* m_Next 변수는 다음으로 가는 변수의 주소를 담고 있습니다. 즉 위에서 부터 데이터를 .. Binary Tree 전체구조Binary Tree의 구조는 다음과 같습니다. 각 Node 객체끼리 왼쪽 노드, 오른쪽 노드, 부모 노드로 연결되어 있으며 최상위 노드는 부모 노드가 없으며 서로 연결된 노드를 통해 접근 할 수 있습니다. 부모 노드의 값을 기준으로 값이 적으면 왼쪽, 값이 크면 오른쪽으로 구성 됩니다.Node 구조class Node {public: int data; Node* left; Node* right; Node* parent; Node(int data) { this->data = data; left = right = parent = NULL; }};데이터를 의미하는 int data와 왼쪽, 오른쪽 부모 노드를 가르키는 Node* 타입의 변수와 기본.. Double Linked List 전체 구조Double Linked List의 전체적인 구조는 그림과 같습니다. Node 구조체 안에는 데이터를 담는 int data변수와 다음 노드의 위치를 가르키는 Node* nextNode와 이전 노드의 위치를 가르키는 Node* preNode가 있습니다. 그럼 이제부터 코드를 하나씩 설명드리겠습니다.Node 구조class Node{ public: int data; Node* nextNode = NULL; Node* preNode = NULL;};Node 클래스 입니다. int num은 데이터를 의미하며 변수 선언을 통해 추가로 데이터를 저장 할 수 있습니다 Node* nextNode는 다음 Node의 주소를 담고 있는 포인터 변수 입니다. 이 값을 통해 다.. Linked List 전체구조Linked List의 전체적인 구조는 그림과 같습니다. Node 구조체 안에는 데이터를 담는 int data변수와 다음 노드의 위치를 가르키는 Node* nextNode 변수가 있습니다. 그럼 이제부터 코드를 하나씩 설명드리겠습니다.Node 구조class Node{ public: string num; Node* nextNode;};Node 클래스 입니다. string num은 데이터를 의미하며 변수 선언을 통해 추가로 데이터를 저장 할 수 있습니다 Node* nextNode는 다음 Node의 주소를 담고 있는 포인터 변수 입니다. 이 값을 통해 다음 Node로 하나씩만 이동 가능하며 첫번째 Node에서 네번째 Node로 가는것은 불가능합니다. 또한 nextNode .. 이전 1 다음