본문 바로가기

Programming/Data Structure10

[C++] 연결리스트 Linked list 코드 구현 방법 이 포스트에서는 단일연결 리스트를 C++ 코드로 구현하는 방법을 다룬다. 리스트가 뭘까? 리스트는 '일정한 순서'의 나열로 어떤 정의에 의해서 결정된 '논리적인 순서'의 나열이다. 리스트의 순서는 데이터가 저장되는 물리적 위치와 상관없이 사람들의 머릿속에 인식되는 논리적인 순서, 혹은 리스트에 나타나는 원소들간의 의미적인 순서를 의미한다. 그럼 배열과 리스트의 차이는? 배열은 인덱스로 표현되는 '순서'가 배열 원소의 메모리 공간에서 물리적 의미를 의미하는 데 반해서, 리스트의 '순서' 개념은 어떤 정의에 의해 결정된 '논리적인 순서'다. 원소들의 물리적인 저장 순서나 위치와 무관하게 원소들 간의 논리적인 순서만 유지한다. 리스트의 구현 방법에는 두 가지가 있다. 1) 포인터를 이용한 방법, 2) 배열을 .. 2020. 9. 10.
[C++] 큐 Queue 구현 방법 코드 큐 Queue 는 먼저 줄 선 사람이 맛집 먼저 들어가고 늦게 온 사람이 늦게 들어가는 원리의 자료구조이다. 다르게 말하면, 한 쪽 끝(rear)에선 삽입만 하고, 다른 한 쪽 끝(front)에선 삭제만 하는 사람으로 따지면 마치 입(음식 삽입)과 응꼬(음식 배출) 같다고 보면 된다. 먼저 들어간 음식이 지금 뱃속 어디에 있는지는 확인할 수 없다. Queue는 컴퓨터에서 CPU 관리 방법에 사용되는 자료구조다. CPU는 스케줄링할 때 FCFS(First come first served) 방식으로 먼저 Ready Queue에 도착한 프로그램 또는 작업 순서대로 CPU가 할당받아 일을 한다. 이제는 진짜 코드를 짜야 할 시간이다. 처음에 rear와 queue가 -1이 되게 설정해서 queue가 비어있는 상태.. 2020. 9. 9.
[C++] 정수형 스택 STACK 구현 코드 (with 후위계산법) 위와 같은 stack 을 코드로 구현해 볼 거다. 정수만 들어가는 stack을 intStack 클래스로 정의한다. 필요한 멤버함수가 들어 있는 intStack 클래스를 intStack.h 헤더파일에 정의해준다. #pragma once #include using namespace std; typedef int element; constexpr auto STACK_SIZE = 5; class intStack { element top; element buf[STACK_SIZE]; public: intStack() : top(-1) { cout 2020. 9. 9.
[C 언어] Stack 스택 구현 방법 C 언어로 Stack을 구현하는 코드 //#pragma warning(disable:4996) #define STACK_SIZE 5 #include typedef int element; element stack[STACK_SIZE]; int top = -1; void PrintStack() { //스택값 출력 int i; printf("\nSTACK 상태: \n"); for(i=STACK_SIZE-1; i>=0; i--){ printf("[%d]=%5d\n" , i, stack[i]); } } void createStack(int n){ //스택 초기값 설정 int i; for(i=0; i= STACK_SIZE-1){ printf("Stack is Full!! \n"); //return; } else {.. 2020. 9. 9.
반응형