728x90

c언어 125

C언어 구조체 및 공용체 주요예제7 (이중 연결 리스트에서 특정 문자 삭제)

내용 출처 : YES C (정보공학연구소 /생능출판사) 이중 연결 리스트(doubly linked list) 에서 특정 문자 삭제하는 예제 // 이중 연결 리스트 예제 #include #include #include #include #define MAXLINE 100 typedef char DATA; struct ELEMENT { DATA d; ELEMENT *prev; ELEMENT *next; }; typedef ELEMENT* LINK; void concatenate(LINK a, LINK b); int count_it(LINK head); void delete_list(LINK head); LINK string_to_list(LINK p, char s[]); void wrt_list(LINK hp..

C언어 구조체 및 공용체 주요예제 6 (트리 오름차순 정렬 (미완성))

내용 출처 : YES C (정보공학연구소 /생능출판사) 데이터를 입력받아 트리에 저장한 후 출력한다.단 값이 입력될 때, root보다 작으면 왼쪽 노드에, 크면 오른쪽 노드에 저장한다.이렇게 저장한 후 중위순 운행을 하면 오름차순으로 정렬된 결과가 출력된다. //제대로 작동 안함. 다시 분석해야할 예제 #include #include #include #include #define LEFT 0 #define RIGHT 1 typedef int DATA; struct NODE { DATA d; NODE *left; NODE *right; }; typedef NODE* BTREE; BTREE add_node(BTREE parent, BTREE r_node, DATA d1, int r_1); BTREE new_..

C언어 구조체 및 공용체 주요예제 5 (이중 연결 리스트)

내용 출처 : YES C (정보공학연구소 /생능출판사) 이중 연결 리스트(doubly linked list) 예제 // 이중 연결 리스트 예제 #include #include #include #include #define MAXLINE 100 typedef char DATA;//will use char in exmaples struct linked_list { DATA d; linked_list *prev; linked_list *next; }; typedef linked_list ELEMENT; typedef ELEMENT* LINK; void concatenate(LINK a, LINK b); int count(LINK head); int count_it(LINK head); void delete_l..

C언어 구조체 및 공용체 주요예제4 (트리 방문 프로그램)

트리(tree) 방문 프로그램 ※ 참고 : 트리는 노드(node)라 부르는 원소들로 구성된다. 또한 루트(root) 노드를 하나 보유하는데, 루트를 제외한 나머지 노드들은 서로 별개인 부트리(subtree)로 나눌 수 있다. ■ 2진 트리(Binary tree) : 두 개 이하의 자손을 원소로 갖는 트리● 이진 트리 구조는 왼쪽 자손(left offspring), 오른쪽 자손(right offspring)이라는 두개의 링크 필드를 가진 자료 구조로 간주할 수 있으므로, 이러한 표현 방식을 따르면 잎 노드는 왼쪽 자손과 오른쪽 자손의 값을 NULL로 가지는 노드이다. ■ 2진 트리의 원소를 방문하는 방법● 중위순(inorder) : 왼쪽 부트리 -> 루트 -> 오른쪽 부트리 순으로● 전위순(preorder..

C언어 구조체 및 공용체 주요예제3 (queue구현)

내용 출처 : YES C (정보공학연구소 /생능출판사) 단순 연결 리스트를 이용하여 생성한 큐(queue)를 이용하는 프로그램 // A linked list implementation of a queue. #include #include #include #include #define EMPTY0 #define FULL10000 typedef unsigned int data; struct element{ data d; element* next; }; //an element in the queue struct queue { int cnt;//a count of the elements element* front;//ptr to the front element element* rear;//ptr to the r..

C언어 구조체 및 공용체 실습문제1 (선형 연결 리스트에서 특정문자 삭제하기)

입력된 데이터 중에서 특정 문자를 지울 수 있는 프로그램 // practics.cpp: 콘솔 응용 프로그램의 진입점을 정의합니다. // #include "stdafx.h" //linear linked list example #include #include #include #define MAXLINE 100 typedef char DATA;// will use char in examples struct linked_list { DATAd; linked_list*next; }; typedef linked_list ELEMENT; typedef ELEMENT*LINK; void concatenate(LINK a, LINK b); int count(LINK head); int count_it(LINK head)..

C언어 구조체 및 공용체 주요예제2 (선형 연결 리스트)

내용 출처 : YES C (정보공학연구소 /생능출판사) 선형 연결 리스트 예제 //linear linked list example #include #include #include #define MAXLINE 100 typedef char DATA;// will use char in examples struct linked_list { DATAd; linked_list*next; }; typedef linked_list ELEMENT; typedef ELEMENT*LINK; void concatenate(LINK a, LINK b); int count(LINK head); int count_it(LINK head); LINK string_to_list(char s[]); void delete_list(LI..

C언어 구조체 및 공용체 주요예제1 (구조체)

구조체 내의 char형 배열에 문자열 값을 넣을 때는 strcpy_s()함수를 쓴다 . #include #include struct member { char name[10]; char sex; int age; }; int main() { member kdh; strcpy_s(kdh.name, "홍길동"); //strcpy_s()함수를 이용해 char형 배열에 값을 대입할 수 있다. kdh.sex = 'm'; kdh.age = 22; printf("이름 : %s \n", kdh.name); printf("성별 : %c \n", kdh.sex); printf("나이 : %d \n", kdh.age); } 바로 대입하고 싶을 때.#include struct member { const char* name; //..

C언어 이론 9. 구조체 및 공용체 (공용체, 열거형)

내용 출처 : YES C (정보공학연구소 /생능출판사) 혼자 연구하는 C/C++ (SoEn.kr /와우북스) Ⅰ. 공용체 (union) ① 여러 자료형의 원소들이 공통으로 사용할 수 있는 기억장소를 정의하고, 한번에 하나의 멤버의 값만 저장하는 자료형. ② 구조체와 유사하여 구조체에서 사용하는 연산자를 그대로 사용한다. ③ 구조체를 선언하는 기본적인 방식은 다음과 같다. 구조체에서의 4가지 바리에이션을 다 적용할 수 있다. union { }; 예시 ) ④ 공용체의 이름 또한 구조체 이름처럼 하나의 타입으로 취급된다. ⑤ 공용체 또한 변수를 선언하면서 초기화 할 수 있지만 첫 요소만 가능하다. ⑥ 공용체는 주로 논리적으로 유사한 값에 대해서 사용한다. Ⅱ. 이름 없는 공용체 ① 공용체에 공용체 이름도 지정..

C언어 이론 9. 구조체 및 공용체 (동적할당)

내용 출처 : YES C (정보공학연구소 /생능출판사) 혼자 연구하는 C/C++ (SoEn.kr /와우북스) Ⅰ. 정적 할당(Static Allocation)과 동적 할당(Dynamic Allocation) ① 정적 할당은 프로그램을 작성할 때 필요한 메모리양을 미리 알려주어 컴파일러가 그 만큼 메모리를 할당하는 것을 말한다. ② 대부분의 변수들은 선언시 이러한 정적 할당의 방법으로 할당되며 배열도 그러하기에 배열의 크기에는 상수값만 올 수 있다. ③ 하지만 프로그램 작성시에는 메모리가 얼마나 필요한지 전혀 알 방법이 없을 때도 있다. ④ 이럴때 사용하는 방법이 동적할당으로 이는 프로그램 실행중에 필요한 만큼의 메모리를 할당하는 것을 의미한다. Ⅱ. 메모리 관리 원칙 ① 현재의 32비트 이상의 시스템에서..

반응형