프로그래밍[Univ]/데이터구조 36

[데이터구조]스택 stack

1. 개요 ⓐ 삽입.삭제가 이뤄지는 곳은 맨 끝부분이다. ⓑ LIFO(Last in, First Out), 후입선출 2. 주요작업 > create, destory, push(삽입), pop(삭제or삭제하면서 top의 값을 리턴), gettop(맨위출력)... 3. 종류 ⓐ 배열 스택 ex ) #define Max 100 typedef struct{ int Top; int Stack[Max]; }stackType; void push(stackType *Sptr,int item){ Sptr -> stack[top++] = item; } void Init(stackType *sptr) // 스택 함수 초기화 , top의 값을 0으로 지정 ※Top 값의 초기값 ⓐ top의 초기 값이 -1 일때 : 현재까지 들어..

[c언어]리스트 추가 내용

1. 포인터 리스트의 delete 다른 페이지에서 설명한 position을 받아서 그 위치의 리스트를 없에는 것이 아니라, value를 받아서 그 값을 리스트에서 없에는 것을 알아보자. ex ) void delete(int item){ temp = Lptr -> head; while((temp!=NULL)&&(Temp->Data!=item)) // 삭제해야 될 위치 직전을 가르킨다.(핵심) temp = temp -> next; ....//포인터 리스트에서 리스트 삭제 부분과 동일 생략. } 2. 이중 연결리스트 노드가 자신 이전과 이후의 값을 가르킨다. 따라서, 중간에 노드를 추가하기 위해서는 temp를 2번 사용하여 연결을 시킬 수 있다. 3. 원형연결리스트 마지막 노드가 head노드를 가르켜 계속 회..

리스트(배열리스트, 포인터리스트(Linked list), 혼합리스트)

* 리스트 작업 ① create > 리스트 만들기 ② insert > 위치를 지정하고 데이터 넣기 ③ delete > 데이터 지우기 ④ retrieve > 데이터 읽어오기 * 리스트 종류 1. 배열 리스트 ① 카운트 변수 > 현재 자기가 사용하는 자료 공간(연산의 효율을 올리기 위해서) ② 데이터 배열 > 충분히 쓸 수 있는 배열 선언 ③ 카운트 + 데이터 구조체 ex ) typedef struct{ int count; int Data[Max]; }listType; void insert(listType *Lptr, int position, int *itemptr); >배열번호 >Data값 void delete(listType *Lptr, int positon); void Retrieve(listType ..

[데이터구조]c언어 복습

1. Align > 메모리가 cpu의 bit수에 맞춰서 사용되는 것 ex) char + int > 5byte가 아니라 8byte가 된다.(32bit cpu기준) Memory(□ : 미사용 , ■ : 사용 ) ■□□□ > char 1byte를 사용하고 Align에 의해 3byte가 더 소비된다. ■■■■ > int 4byte를 사용한다 □□□□ ┐ □□□□ ┘> 미사용 메모리... 2. 파라매터 이름( 용어 중요 ) ┌actual : Main └formal : function 3. 포인터 ⓐ 선언 : int *p; > p의 타입이 인트가 아니라 p가 가르키는 것이 int이다. ⓑ p = (int *)malloc(sizeof(int)); > 메모리 할당 ⓒ free(p); > free를 통해서 메모리의 효율..