* 프로그램을 간단히 하기 위해 malloc 성공체크는 안 함

Slides:



Advertisements
Similar presentations
스택 스택 추상자료형 스택 스택의 구현 스택의 응용 한빛미디어(주).
Advertisements

C언어 응용 제 6 주 연결 자료구조.
CHAP 1:자료구조와 알고리즘.
코크파트너 설치 가이드 Window 7.
제14장 동적 메모리.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
CHAP 1:자료구조와 알고리즘 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
Chapter 04. 연결 리스트(Linked List) 2
[INA240] Data Structures and Practice
C로 쉽게 풀어쓴 자료구조 © Copyright 생능출판사 2011
C로 쉽게 풀어쓴 자료구조 © Copyright 생능출판사 2005
연결리스트(linked list).
Linked List 학기 SANGJI University.
Chapter 05. 연결 자료 구조.
CHAP 6:큐 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
Internet Computing KUT Youn-Hee Han
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
Chapter 03 배열, 구조체, 포인터.
제3장 스택과 큐.
자료 구조: Chapter 3 (2)구조체, 포인터
Chapter 5. General Linear List
CHAP 3:배열, 구조체, 포인터.
제 4 장 L i s t.
스택(stack) SANGJI University Kwangman Ko
head data link data link data link NULL a b c
자료 구조: Chapter 3 (2)구조체, 포인터
제 3 장 선형 리스트 3.1 선형 리스트 3.2 연결 리스트 3.3 다항식.
CHAP 4:리스트 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
강의 #6 큐(Queue).
CHAP 6:큐 C로 쉽게 풀어쓴 자료구조 Slide 1 (of 27).
CHAP 6:큐 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
다음 주 과제 7장 읽어오기 숙제 해서 다음 주(11월 12일) 제출하기. 큐(Queue) E304호,
Chapter 9 – 구조형과 리스트 처리 Outline 9.1 자신 참조 구조형 9.2 선형 연결 리스트 9.3 리스트 연산
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
자료구조: CHAP 4 리스트 (2) 순천향대학교 컴퓨터공학과 하 상 호.
제 5 장. 스택(Stack).
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express.
25장. 메모리 관리와 동적 할당.
동적메모리와 연결리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
Chapter 06. 스택.
P150 문제를 프로그래밍 할 것 Source file (헤더파일포함), 실행화면 (학번_이름_1.txt)
Dynamic Memory and Linked List
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
CHAP 1:자료구조와 알고리즘 C로 쉽게 풀어쓴 자료구조 생능출판사 Slide 1 (of 28)
자료구조: CHAP 4 리스트 (1) 순천향대학교 컴퓨터공학과 하 상 호.
CHAP 4:리스트.
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
프로그래밍 랩 – 7주 리스트.
MicroC/OS-II 3. Memory Management ITISN Technical Lab.
Introduction To Data Structures Using C
자기참조 구조체(1) 먼저 자신과 같은 형의 구조체를 포인트하는 포인터 멤버 필드를 갖는 구조체를 정의한다.
배열과 연결리스트 연결리스트 배열 메모리 할당이 연속적이어서 인덱스 사용시 검색이 빠르다.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
다음 주 과제 3장 읽어오기 숙제 해서 제출하기. 자료구조와 알고리즘, 순환 E304호,
Chapter 04 리스트.
19. 함수 포인터와 void 포인터.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Chap. 1 Data Structure & Algorithms
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
자료구조: CHAP 4 리스트 (2) 순천향대학교 컴퓨터공학과 하 상 호.
조 병 규 Software Quality Lab. 한 국 교 통 대 학 교
자료구조 (Data Structure).
CHAP 1:자료구조와 알고리즘.
토론을 위한 질문 배열의 이름에는 무엇이 저장되는가? C언어에서 배열 추상데이터의 store는 어떻게 구현 되는가?
구조체(struct)와 공용체(union)
▶서류관리 프로그램 1. 로그인….2 2. 서류등록 … 서류도착 서류스티커발행
List, ArrayList, Vector, LinkedList 가 있습니다
List, ArrayList, Vector, LinkedList 가 있습니다
Presentation transcript:

* 프로그램을 간단히 하기 위해 malloc 성공체크는 안 함 가정 오른쪽 프로그램과 같은 상황에서 아래와 같은 main 프로그램을 실행할 경우 * 프로그램을 간단히 하기 위해 malloc 성공체크는 안 함 typedef int element; typedef struct ListNode { element data; struct ListNode *link; } ListNode; int main(void) { ListNode *header = NULL; ListNode *a, *b; a = (ListNode *) malloc(sizeof(ListNode)); a->data =10; insert_node(&header, NULL, a); b = (ListNode *) malloc(sizeof(ListNode)); b->data =20; insert_node(&header, a, b); } // phead: 리스트의 헤드 포인터의 포인터 // p : 선행 노드 // new_node : 삽입될 노드 void insert_node(ListNode **phead, ListNode *p, ListNode *new_node) { if( *phead == NULL ){ // 공백리스트인 경우 new_node->link = NULL; *phead = new_node; } else if( p == NULL ){ // p가 NULL이면 첫번째 노드로 삽입 new_node->link = *phead; else { // p 다음에 삽입 new_node->link = p->link; p->link = new_node;

} } 그림 (1) 그림 (2) 2000 header 2000 10 10 | a (8bytes) | NULL 3008 20 | 주소 주소 1000 2000 header 1000 2000 int main(void) { ListNode *header = NULL; ListNode *a, *b; a = (ListNode *) malloc(sizeof(ListNode)); a->data =10; insert_node(&header, NULL, a); // 그림(1) b = (ListNode *) malloc(sizeof(ListNode)); b->data =20; insert_node(&header, a, b); // 그림(2) } } 2000 10 2000 10 | a (8bytes) | NULL 3008 2007 2007 } 3008 3008 20 | b (8bytes) | NULL 300E 300E data 4B *link 4B malloc(ListNode) 으로 운영체제 메모리 영역 8bytes 를 받음 그림 (1) 그림 (2)