본문 바로가기
반응형

2016/0920

2016-09-20_조재찬_스터디일지_C++기초 2 (기초예제, inline함수, namespace) CPP 예제들 1234567891011121314151617/* 5개 정수 입력받아 합을 출력하는 프로그램*/#include int main(){ int num = 0; int sum = 0; for(int i=0; i 2016. 9. 20.
2016-09-12_조재찬_스터디일지_C언어-이진 트리의 구현과 순회(Traversal) 이진 트리 구현의 예 BinaryTree.h123456789101112131415161718192021222324#ifndef __BINARY_TREE_H__#define __BINARY_TREE_H__ typedef int BTData; typedef struct _bTreeNode{ BTData data; struct _bTreeNode * left; struct _bTreeNode * right;} BTreeNode; /*** BTreeNode 관련 연산들 ****/BTreeNode * MakeBTreeNode(void);BTData GetData(BTreeNode * bt);void SetData(BTreeNode * bt, BTData data); BTreeNode * GetLeftSubTree.. 2016. 9. 13.
2016-09-11_조재찬_스터디일지_C언어-Binary Tree Tree는 단순한 데이터의 저장이 아닌 "데이터의 표현을 위한 도구"이다. 자료구조를 공부하는데 있어서 시야를 넓게 가지고 깊게 사고하려는 노력이 필요하다. 좁은 시야에서 다 이해했다고 착각은 금물 이진 트리의 조건 : 루트 노드를 중심으로 두 개의 서브 트리로 나뉘어짐 (empty set도 node로 간주) 나뉘어진 두 서브 트리도 모두 이진트리 이러한 특성에서 그 구조가 재귀적임을 보인다. Tree의 level과 높이 각 노드의 깊이(depth)는 루트 노드에서 자신까지 가는 경로의 길이이다. 트리의 특정 깊이를 가지는 노드의 집합을 레벨(level)이라 부르기도 한다. 루트 노드의 깊이는 0이다. 트리의 높이(height)는 루트 노드에서 가장 깊이 있는 노드까지 가는 경로의 길이이다. 루트 노드만.. 2016. 9. 12.
2016-09-09_조재찬_스터디일지_C언어-Doubly Linked List Doubly Linked List (양방향 연결리스트) typedef struct _node{Data data;struct _node * next;struct _node * prev; // 이전 노드를 가리키는 멤버가 추가됨} Node; 양방향 연결리스트의 LNext 왼쪽 노드의 주소값을 얻을 수 있기 때문에,단순 연결리스트와 달리 before를 유지할 필요 없음 int LPrevious(List * plist, Data * pdata); 첫번째 노드 추가 newMode->next = NULL;-> newMode->next = plist->head; 첫번째 노드를 추가할 때 plist->head는 NULL이기 때문에 위의 바뀐 문장으로 두가지 역할을 할 수 있다. 두번째 노드의 추가는 다음과 같이 이뤄진.. 2016. 9. 9.
2016-09-08_조재찬_스터디일지_C언어-Circular Linked List Circular Linked List 모든 노드가 원의 형태를 이루며 연결되어 있기 때문에,사실상 머리와 꼬리의 구분이 없다. 다만 저장 순서를 근거로한 머리나 꼬리의 개념을 둘 뿐이다. 머리와 꼬리를 가리키는 포인터 변수를 두지않고하나의 포인터 변수를 가지고 머리 또는 꼬리에 노드를 추가할 수 있게 한다. 꼬리를 가리키는 변수 : tail머리를 가리키는 변수 : tail->next 변경하거나 추가할 함수 LNext원형 연결리스트를 계속해서 순환하는 형태로 변경!(이전 함수 그대로 써도 되지만 원형 연결리스트 특성을 반영) 앞과 뒤에 삽입이 가능한 두개의 함수 정의LinsertFront, LInsert void LInsert(List * plist, Data data);// 노드를 꼬리에 추가void L.. 2016. 9. 8.
2016-09-07_조재찬_스터디일지_C언어-연결리스트의 정렬삽입 정렬 기능 추가된 연결 리스트의 ADT 추가되는 함수void SetSortRule(List * plist, int (*comp)(LData d1, Ldata d2) int (*comp)(LData d1, Ldata d2) 반환형이 int인 LData형 인자를 두개 전달받는, 함수의 주소값 전달(typedef LData int) 다음과 같이 정의된 함수의 주소값이 SetSortRule 함수의 두번째 인자가 됨int WhoIsPrecede(LData d1, LData d2){if(d1 < d2)return 0;// d1이 head에 가까우면 0 반환elsereturn 1; // d2가 head에 가까우면 1 반환} 리스트라는 자료구조를 바꾸지 않으면서정렬의 기준을 지정(약속)하는 함수를 정의 DLinkedL.. 2016. 9. 8.
2016-09-07_조재찬_스터디일지_C언어-Linked List 연결리스트 (Linked List) 연결리스트의 구현을 이해하기 위해서는,malloc 함수와 free함수 기반의 메모리 동적할당에 대한 완전한 이해가 필요 배열은 index를 이용해 순차 접근이 가능한 자료구조배열은 기본적으로 정적이다. (길이의 변경 불가능) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include int main(void) { int arr[10]; int readCount = 0; int readData; int i; while (1) { printf("자연수 입력 (0이하 값 입력시 종료): "); scanf("%d", &readData); if (readData next = NULL; if (head == N.. 2016. 9. 8.
Serial-Oscilloscope ( 시리얼 오실로스코프 ) 물리적인 오실로스코프가 아닌 프로그램화된 시리얼 오실로스코프 입니다 다운로드 : https://github.com/xioTechnologies/Serial-Oscilloscope 위 파일 출처 : http://x-io.co.uk/serial-oscilloscope/ 2016. 9. 7.
2016-09-04_조재찬_스터디일지_C++기초 1 (데이터 입출력, 지역변수, 함수 오버로딩, default) std::cout과 2016. 9. 3.
728x90
반응형