본문 바로가기

반응형

Stack

3. 데이터 구조 - ADT의 개념과 stack의 이해 및 구현 1. ADT란 ?실제적인 구현으로 부터 분리되어 정의된 자료형이다.즉 복잡한 소프트웨어 시스템을 관리하기 위해 각각의 주요한 부분을 분리해 추상적으로 관리하는 것이다. 2. stack의 개념스택이란 더미, 낟가리라는 뜻으로, 어떠한 것들이 쌓여있는 상태를 의미한다.만약 상자라고 예를 든다면, 쌓여있는 상자에서 상자를 빼야할때 밑에서 빼거나 중간에서 빼면 상자가 무너져 내릴것이다.즉 상자를 뺄때는 맨 위(맨 마지막)에 놓은 상자부터 차례대로 빼야 무너지지 않는다. 이러한 과정을 후입선출(LIFO)라고 한다. 그래서 stack은 중간이나 맨 처음(맨 아래)에 넣은 상자를 자신의 차례(맨 위)가 될 때까지 어떤 상자인지 확인 할 수 없다. 무조건 맨 위에 있는 상자만 확인 할 수 있는 것이다! 즉 자료의 출력.. 더보기
4. 데이터 구조 - stack의 구조체화 2024.08.07 - [코딩/데이터 구조] - 3. 데이터 구조 - ADT의 개념과 stack의 이해 및 구현  위의 링크의 stack 구현은 이해하기는 쉽지만 stack배열과 top이 전역변수로 선언되어 있기 때문에 하나의 프로그램에서 여러 개의 stack을 구현할 수 없다. 그래서 top과 stack 배열을 하나의 구조체로 만들면 여러 개의 스택을 쉽게 만들 수 있게 된다.#include #include #define MAX 100typedef struct { //stack 배열과 top 을 하나의 구조체로 만듬 int data[MAX]; int top;}stackType;void init_stack(stackType* s) { s->top = -1; // 구조체 포인터를 받으면 top을 사용하는.. 더보기
C언어로 가장 쉽게 스택(stack) 이해하기! 코딩에는 크게 두가지의 단계가 있다고 생각합니다. 크게 첫번째는 그 언어의 문법(예를 들어 if문이나 for문 등등)을 원하는 때에 적재적소로 사용할 수 있는 단계! 두번째는 자료구조와 알고리즘을 이용해 더 어려운 문제를 풀기 위한 발판을 만드는 단계! 이글은 두번째 단계의 시작인 사람(저도 포함입니다 ㅎㅎ)들을 위해서 작성했습니다 ㅎㅎ 스택(stack) 부터 시작해보시죠!! 스택 구현(stack) 단계 나누기 1. 구조체 및 변수 선언 2. 스택 초기화 함수(init_stack) 3. 공백 상태 검출 함수(is_empty) 4. 포화상태 검출 함수(is_full) 5. 삽입함수(push) 6. 삭제함수(pop) 7. 엿보기함수(peek) 1. 구조체 및 변수 선언 #include #include #in.. 더보기

반응형