목록CSE/Data Structure (7)
한 걸음 두 걸음
#include #include const int MAX_VTXS = 256; class Node { protected: int id; Node* link; public: Node(int i, Node* l = NULL) : id(i), link(l) { } ~Node() { if (link != NULL) { delete link; } } int getId() { return id; } Node* getLink() { return link; } void setLink(Node* l) { link = l; } }; class ListGraph { protected: int size; //정점의 갯수 char vertices[MAX_VTXS]; //정점의 이름 Node* adj[MAX_VTXS]; //인접..
#include #include const int MAX_QUEUE_SIZE = 100; class CircularQueue { protected: int front; int rear; int data[MAX_QUEUE_SIZE]; public: CircularQueue() { front = rear = 0; } void enqueue(int element) { if (!isFull()) { rear = (rear + 1) % MAX_QUEUE_SIZE; data[rear] = element; } } int dequeue() { if (!isEmpty()) { front = (front + 1) % MAX_QUEUE_SIZE; } return data[front]; } bool isFull() { ret..
#include #include const int MAX_QUEUE_SIZE = 100; class Queue { private: int front; int rear; int data[MAX_QUEUE_SIZE]; public: Queue() { front = rear = -1; } void enquque(int element) { if (front != -1) { for (int i = 0; i < rear; i++) { data[i] = data[i + front + 1]; } rear -= front + 1; front = -1; } if (!isFull()) { data[++rear] = element; } } void dequeue() { if (!isEmpty()) { front++; } } ..
#include #include const int MAX_QUEUE_SIZE = 100; class CircularQueue{ private: int front; int rear; int data[MAX_QUEUE_SIZE]; public: CircularQueue() { front = rear = 0; } void enqueue(int element) { if (!isFull()) { rear = (rear + 1) % MAX_QUEUE_SIZE; data[rear] = element; } } void dequeue() { if (!isEmpty()) { front = (front + 1) % MAX_QUEUE_SIZE; } } bool isFull() { return (rear + 1) % MAX_Q..
#include #include const int MAX_STACK_SIZE = 20; //data[]배열로 구현한 stack class Stack { private: int top; int data[MAX_STACK_SIZE]; public: Stack() { top = -1; } ~Stack() { } void push(int element) { if (!isFull()) data[++top] = element; } bool isFull() { return top == MAX_STACK_SIZE - 1; } int pop() { if (!isEmpty()) return data[top--]; } bool isEmpty() { return top == -1; } int peek() { if (!isEm..
맵(Map)이란? 맵은 mapping의 약자로 ("Key","Value")값으로 구성되어있습니다. 맵 클래스 종류 Map 인터페이스 중 가장 많이 쓰이는 맵클래스는 HashMap, TreeMap, LinkedHashMap이며, HashMap은 null값을 저장할 때, HashTable은 멀티스레드 환경에서 사용됩니다. 맵 자료구조 사용하기 Map map = new HashMap(); HashMap map = new HashMap(); put map.put("key","value"); // key&value값 초기화됨 get map.get("key"); //value값 반환됨 hashMap에 대한 구체적인 사용방법 링크 https://vaert.tistory.com/107 참고URL Collection에 ..
자료구조란 정보통신기술의 발달에 따라 발생하는 방대한 자료를 효율적으로 관리하기 위해 필요한 것으로 자료들을 정리하고 조직화하는 구조이다. 이 때 구조는 각 원소들 사이의 관계가 논리적으로 정의되어 일정한 규칙에 의하여 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 구성되어있다. 자료구조의 전체 분류를 보자면 위와 같다. 선형구조는 자료들이 순서적으로 나열된 것을 말하며 데이터에 접근하기 위해 순서접근 또는 직접접근 방법을 사용한다. 직접 접근 방법으로는 배열이 있으며 순서 접근 방법으로는 연결리스트가 있다. 비선형구조는 자료들간에 순서가 아닌 보다 복잡한 연결 방법을 갖는 것으로 트리와 그래프 등이 이에 해당된다. 비선형 구조의 예시로는 트리형식을 갖는 계층구조나 그래프와 같은 지하철노선도 ..