반응형

전체 312

자료구조 원형연결리스트 예제

CLinkedList.h 노드와 리스트를 정의하고 사용될 함수를 선언하는 헤더파일입니다. #ifndef __C_LINKED_LIST_H__ #define __C_LINKED_LIST_H__ #define TRUE 1 #define FALSE 0 typedef int Data; typedef struct _node { Data data; struct _node* next; }Node; typedef struct _CLL { Node* tail; Node* cur; Node* before; int numOfData; }CList; typedef CList List; void ListInit(List* plist); void LInsert(List* plist, Data data); void LInsertFr..

윤성우의 열혈자료구조 문제 04 - 1연결리스트 익숙해지기

데이터 3 -> 2 -> 7 -> 8 ->5 를 입력하고 저장하면 역순인 5 -> 8 -> 7 -> 2 ->3 으로 저장되게 하는 예제 #define _CRT_SECURE_NO_WARNINGS #include #include typedef struct _node {//node 구조체 정의 int data; struct _node* next; }Node; int main() { Node* head = NULL;//head 노드 선언 Node* tail = NULL;//tail 노드 선언 Node * cur = NULL;//cur 노드 선언, 저장된 데이터조회를 위한 변수 Node* newNode = NULL;//노드를 추가하기 위한 노드 int readData;//데이터를 저장하기 위한 변수 while (..

자료구조 리스트(List) 기초 개념정리

추상자료형(Abstract Data Type) 추상자료형 이란 간단히 ADT라고도 불리며, 프로그래밍을 공부하면 볼 수 있는 용어 입니다. ADT는 구체적인 기능의 완성과정을 언급하지 않고 단순히 기능이 무엇인지를 나열한 것 입니다. 리스트 리스트자료구조는 데이터를 나란히 저장하며, 중복된 데이터의 저장을 허용합니다. 순차리스트: 배열기반의 리스트, 메모리의 특성이 정적이다. 연결리스트: 메모리의 동적할당 기반의 리스트 배열기반리스트 배열기반리스트는 연결리스트에 비해서 참조가 쉽습니다. 또한 인덱스 값을 기준으로 사용하여 어느 위치든 한번에 참조가 가능합니다. 배열기반리스트의 단점으로는 삭제과정을 거칠때마다 데이터의 이동이 필요하기 때문에 효율이 떨어지며, 배열의 길이가 초기화할때 정해져야하며 변경이 불..

윤성우의 열혈자료구조 문제 03-1

#define _CRT_SECURE_NO_WARNINGS #include #include #define TRUE 1//TRUE는 1로 정의 #define FALSE 0//FALSE는 0으로 정의 #define LIST_LEN 100//리스트의길이는 100으로 정의 typedef int LData;//int를 LData로 정의 typedef struct __ArrayList//구조체 ArrayList 정의 { LData arr[LIST_LEN]; int numOfData; int curPosition; }ArrayList; typedef ArrayList List; void ListInit(List* plist) {//리스트 초기화함수 plist->numOfData = 0; plist->curPositio..

하노이탑 c언어 예제 (자료구조)

하노이탑 코드 비록 짧은 코드이지만 재귀함수를 이해하는데 도움이 많이 되는 것 같습니다. 저는 처음봤을때 머리로 한번에 이해가 되지않아서 한단계씩실행하여 과정을 천천히 이해했습니다. #define _CRT_SECURE_NO_WARNINGS #include #include void Hanoi(int num, char from, char by, char to) { if (num == 1) printf("원반1을 %c에서 %c로 이동\n", from, to); else { Hanoi(num - 1, from, to, by); printf("원반%d를 %c에서 %c로 이동 \n", num, from, to); Hanoi(num - 1, by, from, to); } } int main() { Hanoi(3, '..

자료구조 기초 개념 (Data Structure) (빅오표기법)

자료구조란 프로그램은 데이터의 표현 및 데이터의 처리이다. 이때 데이터의표현은 데이터의 저장을 포함하는 개념이며, 데이터의 저장을 담당하는 것이 자료구조 이다. 자료구조의 종류는 선형구조(리스트, 스택, 큐), 비선형구조(트리, 그래프), 파일구조, 단순구조가 있다. 알고리즘의 성능분석방법 자료구조와 알고리즘의 정상적인 동작외에 좋은성능인지 알기위하여 자료구조와 알고리즘을 분석하고 평가하기위해서 필요하며, 처리해야할 데이터의수(n)이 있다고 가정했을때 n의 증가에 따라서 변하는 연산횟수로 판단할수 있다. 시간복잡도(time complexity): 알고리즘의 수행시간 분석결과 공간복잡도(space complexity): 메모리 사용량에 대한 분석결과 알고리즘의 동작을 판단할때 최선의 경우(best case..

객체지향언어2 -자바- for-each문 예외처리 클래스 생성자

객체지향언어2 -자바- for-each문 예외처리 클래스 생성자 1. 자바에서 for-each문은 배열의 각 원소에 순차적으로 접근할때 유용한 for 문이다. 2. 정방형 배열은 행과 열의 개수가 같은 배열이며, 비정방형 배열은 행과 열의 개수가 다른 배열이다. 3. 메소드에서 배열을 리턴할때는 리턴 타입을 배열로 선언을 하고 리턴할때 배열의 변수명 만 리턴하면 된다. (배열의 레퍼런스 리턴) 4. 자바에서는 예외 처리를 위해서 try - catch - finally 문을 사용한다. try블록 안에는 예외 발생가능성이 존재하는 실행문을 넣고, catch블록에는 처리할 예외 타입을 선언하고 예외처리문을 넣는다. finally블록은 예외발생에 관계없이 무조건실행되는 문장이며 생략가능 하다. 5. NullPo..

안드로이드 애니메이션 (Drawable, Property, MotionLayout)

안드로이드 애니메이션 (Drawable, Property, MotionLayout) 1. 안드로이드에서 애니메이션은 움직이는뷰, 뷰전환 등을 하기위해서 사용되며, 앱을 좀더 고급스럽게 만들어줄 수 있다. 안드로이드 에는 다양한 애니메이션 지원 API를 가지고있다. 2. Drawable 애니메이션은 여러장으로 만드는 애니메이션이며, 애니메이션에 포함될 이미지들의 리스트를 갖는 리소스를 생성한다. (가장 기본적인 애니메이션) 3. Property 애니메이션은 객체의 속성을 시간에 따라 변경하여 애니메이션효과를 만드는 것이다.ex) x, y좌표를 시간에따라 변경 ValueAnimator: 값에 대한 애니메이터, ObjectAnimator: 객체의 속성에 대한 애니메이터, AnimatorSet: 애니메이터들의 ..

Programming/Android 2021.09.23

오픈소스소프트웨어 (git, init, commit, branch, merge, push, stage, gitignore)

1. 최초의 버전관리시스템은 유닉스환경에서 사용 가능한 SCCS 이다. 깃은 현재 가장 많이 사용되는 분산형 VCS 이다. 깃의 모든 소스는 깃허브에 공개 되어있다. 2. 깃은 네트워크 연결없이도 로컬 컴퓨터의 소스코드는 버전관리를 할 수 있으며, 협업 개발에 효율적이다. (코드공유유용) 깃에서 commit은 수정이력을 기록하는 것이다. 깃에서 원격저장소는 중앙 서버의 역활이다. (원격저장소를 사용하면 코드를 외부에도 공개가능) 3. init: 일반폴더를 git 저장소로 변경한다. commit: 변경된 코드이력 기록한다. branch: 분리된 코드이력을 기록한다. mrerge: 분리된 이력을 기존 이력과 통합한다. push: 로컬저장소의 이력을 서버로 전송하고 공유한다. 4. git repository는..

데이터통신 기초 (호스트, 패킷, bps, 이더넷, 패킷전송지연, 패킷교환, 라우팅, 회선교환, 종단시스템)

데이터통신 기초 (호스트, 패킷, bps, 이더넷, 패킷전송지연, 패킷교환, 라우팅, 회선교환, 종단시스템) 1. 호스트란 네트워크를 실행 할 수 있는 시스템이다. ex) pc, server 통신링크는 전송매체로서 광섬유, 구리선, 라디오 등이 있으며, 대역폭(bandwidth)에 따라서 네트워크의 속도가 결정된다. 2. 패킷단위로 쪼개진 데이터들을 라우터가 길을 정하여 전달한다. 인터넷은 다양한 네트워크들이 연결된 것이다. 3. 네트워크의 구조에서 네트워크 가장자리는 호스트로서 클라이언트와 서버를 표현하며, 네트워크 중심은 상호연결되어있는 라우터들을 표현한다. 4. bps는 bits per sceond의 약자로서 네트워크의 속도를 나타낸 다. (대역폭에 따라 달라짐) 5. 학교 또는 기업에서는 이더넷을..

반응형