분류 전체보기 501

스택 stack 괄호쌍 비교 응용

#include #include #define MAX_INDEX 100 // 상수 선언. typedef struct { //stack 구조체를 생성한다. int data[MAX_INDEX]; // MAX_INDEX 의 크기를 가진 멤버 data 배열을 선언한다. int top; // data 배열의 현재 인덱스를 나타내는 멤버 top 을 선언한다. }stack; int is_full(stack s) { //스택이 가득찼나 "검사" 하는 함수 return (s.top == MAX_INDEX - 1); // top 변수가 99일때 1을 반환한다.(true 반환) } int is_empty(stack s) { //스택이 비워졌나 검사하는 함수 return (s.top == -1); //top 변수가 -1일때 ..

stack 스택 회문

#include #include #define MAX_INDEX 100 // 상수 선언. typedef struct { //stack 구조체를 생성한다. int data[MAX_INDEX]; // MAX_INDEX 의 크기를 가진 멤버 data 배열을 선언한다. int top; // data 배열의 현재 인덱스를 나타내는 멤버 top 을 선언한다. }stack; int is_full(stack s) { //스택이 가득찼나 "검사" 하는 함수 return (s.top == MAX_INDEX - 1); // top 변수가 99일때 1을 반환한다.(true 반환) } int is_empty(stack s) { //스택이 비워졌나 검사하는 함수 return (s.top == -1); //top 변수가 -1일때 ..

stack 스택 괄호쌍이 맞는지 확인하는 프로그램

#include #include #define MAX_INDEX 100 // 상수 선언. typedef struct { //stack 구조체를 생성한다. int data[MAX_INDEX]; // MAX_INDEX 의 크기를 가진 멤버 data 배열을 선언한다. int top; // data 배열의 현재 인덱스를 나타내는 멤버 top 을 선언한다. }stack; int is_full(stack s) { //스택이 가득찼나 "검사" 하는 함수 return (s.top == MAX_INDEX - 1); // top 변수가 99일때 1을 반환한다.(true 반환) } int is_empty(stack s) { //스택이 비워졌나 검사하는 함수 return (s.top == -1); //top 변수가 -1일때 ..

stack 스택 이용한 문자 역순 출력

#include #include #define MAX_INDEX 100 // 상수 선언. typedef struct { //stack 구조체를 생성한다. int data[MAX_INDEX]; // MAX_INDEX 의 크기를 가진 멤버 data 배열을 선언한다. int top; // data 배열의 현재 인덱스를 나타내는 멤버 top 을 선언한다. }stack; int is_full(stack s) { //스택이 가득찼나 "검사" 하는 함수 return (s.top == MAX_INDEX - 1); // top 변수가 99일때 1을 반환한다.(true 반환) } int is_empty(stack s) { //스택이 비워졌나 검사하는 함수 return (s.top == -1); //top 변수가 -1일때 ..

자료구조 기초 지식

자료구조의 역할 - 컴퓨터 프로그래밍에 있어서 가장 기초적인 학문분야 - 컴퓨터 프로그램의 기본 골격 - 프로그램이 효율적이고 안전하게(죽지않게) 동작하기 위해서 반드시 필요 간과하기 쉬운 경우 - 프로그램의 크기가 작은 경우 - 대형 프로젝트의 초기 단계 ---> 구조적 결함 발생 자료구조란? 컴퓨터에 자료를 효율적으로 저장하는 방식 - 메모리(저장 공간) 절약(Space Complexity) - 프로그램 수행(실행) 시간 단축(Time Complexity) 프로그램의 수행시간 혹은 저장 공간을 고려한 자료구조의 설계 --> 프로그램이 어떻게 사용되는지에 따라 결정 (프로그램의 목적 및 기능에 부합하는 자료구조 설계) ex) 윈도우 탐색기 사전 프로그램 단순구조(primitive, simple) 선형구..

포인터 사용시 주의해야할 점

1. 초기화 하지않고 사용하기 - 만약 포인터가 선언만 되고 초기화하지 않았다면 포인터는 임의의 주소를 가리키게 된다. 포인터를 초기화시키지 않고 포인터p가 가리키는 곳에 값을 100을 대입하고 있어 위험한 코드이다. 만약 우연히 p가 중요한 영역을 가리키고 있었다면 중요한 정보를 덮어 쓸수도 있으며 따라서 전체 시스템을 다운시킬 수 있다. 2. NULL포인터 사용 포인터가 아무것도 가리키고 있지 않을 때는 NULL(0)로 설정하는 것이 바람직하다. 3. 포인터 자료형과 변수의 자료형은 일치하여야 한다.

C/포인터 2019.12.05

함수와 포인터

데이터를 전부 복사해서 함수로 넘기는 것보다 데이터가 있는 위치를 포인터로 알려주는편이 훨씬 효율적이다. 일반적으로 외부로부터 데이터를 받는 방법에는 2가지가 있다. * 값에 의한 호출(call-by-value) : 함수가 호출될 때 복사본이 함수로 전달되면 값에 의한 호출이다. 함수 안에서 매개변수를 변경하여도 원본에는 영향을 주지않는다. * 참조에 의한 호출(call-by-reference) : 만약 함수가 호출될 때 원본을 함수로 전달하는 방법이다. 함수 안에서 매개변수를 변경하면 원본 변수가 변경된다. C언어에서는 기본적으로 값에 의한 호출만 가능하다. #include void modify(int value){ value = 99; } int main(void){ int number = 1; mo..

C/포인터 2019.12.05

문자열과 포인터

문자열을 저장할때, 이때까지는 문자형 배열만을 사용하였다. 하지만 다른방법이 있는데, 문자 포인터를 선언하고 여기에 문자열의 주소를 저장하는 방법이다. char s[] = "HelloWorld"; //1번 char *p = "HelloWorld"; //2번 1번은 문자형 배열 s[]을 선언하는 문장이다. 2번은 기본적으로 문자형 포인터p를 선언하는 문장이다. 문자열 상수 "HelloWorld"는 읽기 전용 메모리에 저장되고 주소가 반환되어서 포인터 p에 저장된다. 그래서 변경되지 않는 문자열을 저장할때 2번이 좋다. 2번과 같은 방법을 사용하면 편리하면서도 메모리를 절약할 수 있다.

C/문자열 처리 2019.12.04