push( ) 와 pop( ) 함수를 이용한 스택 - C 언어
·
C
스택의 개념과 구조: 스택은 마지막에 삽입한 원소는 맨 위에 쌓여 있다가 가장 먼저 삭제 됨 / 후입선출 구조 ( LIFO, Last-In-First-Out )스택에서의 삽입 연산 : push스택에서의 삭제 연산 : pop 기본 설정 #include stdio.h>#define STACK_SIZE 100 int S[STACK_SIZE];int top=-1;cs 100 크기의 S라는 정수형 배열을 만든다. 변수 top은 삽입과 삭제가 일어나는 위치로 현재 스택의 가장 위에 있는 데이터 위치이다.새로운 데이터가 들어오면 배열의 첫번째인 S[0]에 들어오기 때문에 top의 위치는 0으로 바뀌어야 한다. 그렇기에 top의 초기값은 -1이다. 스택의 push( ) 알고리즘 : 스택 S에서 top이 마지막 자료를 ..
선형 리스트 삽입/삭제/탐색/종료 - C 언어
·
C
선형리스트에 데이터를 삽입, 삭제, 탐색하는 함수를 구현한 프로그램. 배열의 크기 100, 데이터의 갯수 n이 기본 설정이다.입력받은 데이터를 크기별로 리스트에 넣을 것이다.  선형리스트는 말그대로 선으로 연결되어 있는 자료구조이다. 따라서 새로운 데이터를 삽입할 때에는 삽입할 위치의 원소를 뒤로, 그 뒤 원소를 또 뒤로 넘겨 한자리씩 이동시켜야 한다. 그렇게 해서 만든 빈 자리에 데이터를 삽입해야 한다.  삭제는 반대로 원소를 삭제하고 생긴 공백을 메우기 위해 뒤에 있던 원소들을 한자리씩 앞당겨야 한다.전체 코드는 아래와 같음. //선형리스트 프로그램#includestdio.h>#includeWindows.h>#define MAX 100 //배열의 크기 int list[MAX] = { 0 };int n..
연결리스트(Linked list) 노드 삭제 - C 언어
·
C
2021.04.09 - [C/자료구조] - [자료구조] C언어 연결리스트(Linked list) 생성 / 출력 [자료구조] C언어 연결리스트(Linked list) 생성 / 출력연결리스트 만들기 "월" "화" "수" "목" "금" 등 요일을 데이터값으로 갖는 연결리스트를 만들어보자. typedef struct node {         char data;         struct node* next;     } ..tildacoderecorder.tistory.com*이 글의 예제와 설명은 연결리스트의 개념에 대해 설명한 위 글을 기반으로 함. 연결리스트에서 노드 삭제하기pre의 다음 노드를 삭제하는 방법typedef struct node {    char data;    struct node* nex..
연결리스트(Linked list) 노드 삽입 - C 언어
·
C
2021.04.09 - [C/자료구조] - [자료구조] C언어 연결리스트(Linked list) 생성 / 출력 [자료구조] C언어 연결리스트(Linked list) 생성 / 출력연결리스트 만들기 "월" "화" "수" "목" "금" 등 요일을 데이터값으로 갖는 연결리스트를 만들어보자. typedef struct node {         char data;         struct node* next;     } ..tildacoderecorder.tistory.com *이 글의 예제는 연결리스트의 생성과 출력에 대해 요약한 전 글과 같은 구조체를 사용. 연결리스트의 첫 번째 노드로 삽입하기char val의 값은 전 글에서 말했듯이 "월"으로 한다. typedef struct node {    char ..
연결리스트(Linked list) 마지막에서 두번째 데이터 출력 - C 언어
·
C
tildacoderecorder.tistory.com/96 [자료구조] C언어 연결리스트(Linked list) 생성 / 출력연결리스트 만들기 "월" "화" "수" "목" "금" 등 요일을 데이터값으로 갖는 연결리스트를 만들어보자. typedef struct node {         char data;         struct node* next;     } ..tildacoderecorder.tistory.com저번 글에서 연결리스트의 생성과 출력에 대한 기본적인 것들에 대해 알아봤다.이번 글에서는 조건이 있는 출력에 대해 알아볼 것이다.*예제에 쓰인 연결리스트는 전 글의 연결리스트와 동일 마지막에서 두 번째 데이터만 출력하기 마지막에서 두번째만 출력하기 위해서는 먼저 세 가지 조건을 살펴봐야한다...
연결리스트(Linked list) 생성 / 출력 - C 언어
·
C
연결리스트 만들기 "월" "화" "수" "목" "금" 등 요일을 데이터값으로 갖는 연결리스트를 만들어보자.typedef struct node {         char data;        struct node* next;     } Node;     Node* head = NULL;cs 먼저 구조체로 "노드"의 틀을 만든다. 노드에는 데이터가 들어갈 데이터 변수와 다음 노드를 가리킬 포인터 변수가 있어야 한다. 데이터 변수는 어떠한 자료형이어도 상관없다.typedef으로 구조체의 별칭을 Node로 정해둔다.연결리스트의 맨 앞 노드는 head라 부르며 head는 첫번째 노드를 가리키고 있어야 한다.( = 첫번째 노드의 주소를 가지고 있어야 함.)위와 같이 head를 선언한 것을 그림으로 그리면 아래와 ..