[[TableOfContents]] = 참여자 명단 = || 의사 || 장용운 || 11학번 || 미시행 || ||<|3> 환자 || 천준현 ||<|3> 15학번 || 미시행 || || 최지혁 || 미시행 || || 박인서 || 미시행 || = 수업 = == 진행 == 1. 장소 : 6층 학회실 2. 시간 : 11시 ~ 13시 == 내용 == '''11강. 우리 펌프하러 가자 ↗↘↖↙''' * 구조체 * linked list * stack(array) * stack(linked list) * queue * tree = 코드 = == 예제1 == = 숙제 = 1. 이 페이지에 후기 작성하기! 2. 오늘 공부한 개념 수업 페이지에 정리하기! 3. 다음 용어에 대해 깊이있게 조사하기 * Heap * Priority Queue = 후기 = * '''후기 작성 요령''' : 후기는 F4(ThreeFs + Future Action Plan)에 맞게 작성해주세요. * Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획. *모든 걸 놔버리고 싶네요. 수업내용에 대한 이해력이 제 인생의 미래같아요. -[천준현] *이해력이 좀 많이 딸려서...ㅂㄷㅂㄷ 시간 잡아먹는 주범이 되었네요. 여러분, 죄송합니다... -[최지혁] * ~~역시 포인터는 발암이네요.. 포인터를 잘하고 싶은 발암입니다.~~ 포인터는 역시 계속 봐줘야 된다고 생각하였고, 심히 자료구조 할 때가 걱정되는 수업이었습니다. ~~점점 저의 밑천이 드러나네요..~~ 그런 만큼 포인터를 익숙해질 때까지 반복해야겠습니다. - [박인서] ---- = 숙제 제출 = == 천준현 == {{{ struct myType { int ma; int mb; }; (중괄호 뒤에 세미콜론! 중요!!!!) (struct myType) var1; var1.ma = 10; var1.mb = 3.2; func(var1) typedef int 으힣; 이렇게 하면 으힣은 int 가 된다. typedef struct { blah blah~~~ } myType; <<<이 방법을 가장 많이 씀. 편하니까 ㅋ }}} {{{ *자료구조 연결리스트(linked list) 값 | 다음 주소 - single ________ 1개 - double ________ 2개 - circular ________ 배열과 비교하여 유연한 점은 있으나 다음 걸로 넘어가는데 시간이 걸린다. single : 뒤에꺼만 double : 앞뒤 둘다 circular : 순환 }}} == 최지혁 == 2. struct : 여러 자료형을 묶은 것. struct 이름 { ~~ }; 로 만들 수 있다. typedef : typedef 자료형 X 하면 자료형을 X로 대신 쓸 수 있다. linked list: 연결리스트로, single list는 단방향으로 하나의 다른 데이터를 가리키고, double list는 양방향으로 두개의 다른 데이터를 가리킨다. circular list는 여러 데이터들이 연결되어있는데 자신에게 돌아오는 형식이다(단방향,양방향 둘 다 가능). t.next 와 t->next와 같은 의미로 쓸 수 있다. stack,queue,tree : stack은 마지막으로 들어온게 먼저 빠지는 구조, queue는 먼저 들어간 게 먼저 나오는 구조, tree는 각각 한 데이터가 다른 두 데이터를 가리키는 데이터다. 3. Heap : (1)프로그래머가 원하는 시점에 변수를 할당하고 또 소멸하도록 지원을 하는 유형의 변수들이 할당되는 영역을 heap영역이라고 한다. (2)완전 이진 트리 Priority Queue : 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나온다. == 박인서 == === 수업 내용 정리 === * 구조체(struct) : 사용자 정의 자료형 * 구조체의 정의 {{{struct 구조체명{ 묶고싶은 자료형 정의; };<-중요!}}} * 구조체의 선언 {{(struct 구조체명) 변수명; 변수명.인자->안에 있는 자료형}} * 함수에서 구조체를 넘겨줄 수 있다->하나의 자료형 취급 * typedef {{{ typedef int 저나갈래요; //왜 저런거로 선언했는지는 잘 아시겠죠}}} * #define보단 약함 * typedef struct car mycar; * typedef를 이용한 구조체 선언 typedef struct 아무거나(없어도 됨){ }구조체명;->아무거나와 구조체명으로 모두 구조체 사용 가능 * 자료구조 : ~~자구싶은 과목~~논리적으로 자료를 생각 * 연결 리스트(linked list) : 자신의 데이터값과 붙어있지 않은 다음 데이터의 위치를 가져서 첫번째 자료를 알면 모든 값의 위치를 알 수 있다. * 장점 : 배열보다 데이터를 다루기 유용하다. * 단점 : 배열보다 데이터를 찾을 때 어렵다. * 연결 리스트의 종류 * single->1개 : 한방향만 암->중간에 있는 값은 앞에있는 값이 어떤지 모름 * double->2개 : 양방향을 다 암 * circular : 돌고돌아 결국 자신의 위치로 되돌아 올수 있음(여기에도 single, double 존재) * 연결리스트 node 만들기 {{{typedef struct { int a; temp * pt; }temp;}}} * *t.next는 t->next로 치환가능 * 스택(stack) : 나중에 넣은 데이터가 처음 나온다. * 큐(queue) : 처음에 넣은 데이터가 처음 나온다. * 트리~~나무~~(tree) : ~~나무처럼 생긴거~~ === 용어 정리 === * Heap : 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전이진트리를 기본으로 한 자료구조 * Priority Queue : 기존의 큐와 다르게 우선순위가 높은 데이터 먼저 나가는 Queue ---- ----------------------------------- [새싹교실/2015] [새싹교실/2015/의사양반]