검색결과 리스트
Tip & Tech/적절한관계에 해당되는 글 3건
- 2013.04.10 [2 - 2 주차]트리, 힙 구현과 탐색
- 2013.04.10 [2 - 1 주차] 포인터를 이용한 리스트
- 2013.04.10 [1주차] c언어 기본
글
struct linkedlist{ int data; struct linkedlist *next; struct linkedlist *prev; }; typedef struct linkedlist LINKEDLIST; typedef LINKEDLIST *LINK; void heapTree( LINK *node, int data ){ if( *node == NULL ){ *node = newList(data); }else{ if( (*node)->data > data ){ heapTree( &(*node)->prev , data ); }else{ heapTree( &(*node)->next , data ); } } } void preorder( LINK node ){ if(node->data != NULL) printf("%d",node->data); if(node->prev != NULL) preorder(node->prev); if(node->next != NULL) preorder(node->next); } void postorder( LINK node ){ if(node->prev != NULL) preorder(node->prev); if(node->next != NULL) preorder(node->next); if(node->data != NULL) printf("%d",node->data); } void inorder( LINK node ){ if(node->prev != NULL) preorder(node->prev); if(node->data != NULL) printf("%d",node->data); if(node->next != NULL) preorder(node->next); } void main(void){ LINK root = NULL;//= (LINK)malloc(sizeof(LINKEDLIST)); heapTree(&root,11); heapTree(&root,10); heapTree(&root,12); printf(" PREORDER : "); preorder(root); printf(" POSTORDER : "); postorder(root); printf(" INORDER : "); inorder(root); }
'Tip & Tech > 적절한관계' 카테고리의 다른 글
[2 - 1 주차] 포인터를 이용한 리스트 (0) | 2013.04.10 |
---|---|
[1주차] c언어 기본 (0) | 2013.04.10 |
트랙백
댓글
글
1 - 1 싱글 링크드 리스트
struct linkedlist{ int data; struct linkedlist *next; }; typedef struct linkedlist LINKEDLIST; typedef LINKEDLIST *LINK; LINK newList( int data ){ LINK list; list = (LINK)malloc(sizeof(LINKEDLIST)); list->data = data; list->next = NULL; return list; } void appendList( LINK list, LINK argu ){ list->next = argu; } LINK findList( LINK head, int value ){ LINK list = head; while(list->data != value){ list = list->next; if(list->next == NULL){ break; } } return list; } void deleteList( LINK head, LINK find ){ find->prev->next = find->next; free(find); } void printList( LINK head ){ LINK print = head->next; while(print != NULL){ printf("%d\n",print->data); print = print->next; } } void main(void){ head = newList(-1); appendList( head, newList(4) ); appendList( head, newList(3) ); appendList( head, newList(2) ); appendList( head, newList(1) ); deleteList( head, findList( head, 1 ) ); deleteList( head, findList( head, 3 ) ); printList(head); }
2 - 1 더블 링크드 리스트
struct linkedlist{ int data; struct linkedlist *next; struct linkedlist *prev; }; typedef struct linkedlist LINKEDLIST; typedef LINKEDLIST *LINK; LINK newList( int data ){ LINK list; list = (LINK)malloc(sizeof(LINKEDLIST)); list->data = data; list->next = NULL; list->prev = NULL; return list; } void appendList( LINK list, LINK argu ){ list->next->prev = argu; argu->next = list->next; list->next = argu; argu->prev = list; } LINK findList( LINK head, int value ){ LINK list = head; while(list->data != value){ list = list->next; if(list->next == NULL){ break; } } return list; } void deleteList( LINK head, LINK find ){ find->next->prev = find->prev; find->prev->next = find->next; free(find); } void printList( LINK head ,LINK tail){ LINK print = head->next; while(print != tail){ printf("%d\n",print->data); print = print->next; } } void init( LINK head, LINK tail ){ head->next = tail; tail->prev = head; } void main(void){ head = newList(-1); tail = newList(-1); init( head, tail ); appendList( head, newList(4) ); appendList( head, newList(3) ); appendList( head, newList(2) ); appendList( head, newList(1) ); deleteList( head, findList( head, 1 ) ); deleteList( head, findList( head, 3 ) ); printList(head,tail); }
'Tip & Tech > 적절한관계' 카테고리의 다른 글
[2 - 2 주차]트리, 힙 구현과 탐색 (0) | 2013.04.10 |
---|---|
[1주차] c언어 기본 (0) | 2013.04.10 |
트랙백
댓글
글
< c 포인터의 기본 개념 >
1. 포인터
1 - 1 포인터와 증가연산자
*++p
*p++
++*p
(*p)++
1 - 2 const 의 위치에 따른 차이점
int * pi;
const int * pi;
int * const pi;
const int * const pi;
1 - 3 배열과 포인터의 차이점
1. char str[43] = "apple";
2. char str[43];
str = "apple";
3. char* str = "apple";
4. char* str;
str = "apple";
2. 배열과 포인터의 할당 방법
2 - 1 포인터
int main(int arc, int **argv){ char* pc = (char*)malloc(5*sizeof(char)); int size_char = sizeof(char); printf("char = %d\n",size_char); free(pc); return 0; }
2 - 2 배열
int main(int arc, int **argv){ int len; printf("배열의 크기"); scanf("%d",&len); int array[len]; }
2 - 3 calloc과 malloc
int *arrays; int len; int i=0; printf("배열의 크기"); scanf("%d",&len); arrays = (int*)malloc(sizeof(int)*len); memset(arrays, '0', len); //arrays = (int*)calloc(sizeof(int)*len);
2 - 4 배열을 가르키는 포인터
int main(int arc, int **argv){ int col = 0, row= 0; int a[3][3] = {{1,2,3},{10,20,30},{100,200,300}}; int (*pa)[3]; pa = a; }
2 - 5 void형 포인터
void (*pf)(void);//매개변수가 없고 반환값도 없는 함수포인터 void one(){ printf("one"); } void two(){ printf("two"); } void main(){ pf = one; pf(); pf = two; pf(); }
2 - 6 함수를 가르키는 포인터
void (*pf)(int*,int*); void change(int* a, int* b){ int temp = *a; *a = *b; *b = temp; } void main(){ int a = 3; int b = 4; pf = change; pf(&a,&b); printf("%d,%d",a,b); }
'Tip & Tech > 적절한관계' 카테고리의 다른 글
[2 - 2 주차]트리, 힙 구현과 탐색 (0) | 2013.04.10 |
---|---|
[2 - 1 주차] 포인터를 이용한 리스트 (0) | 2013.04.10 |
RECENT COMMENT