Programings/Data Structs (6) 썸네일형 리스트형 RVector #include /************************************************** 장점 : 빠른 접근 단점 : 앞쪽으로 넣을 수록 데이터를 뒤로 보내는 작업이 발생함 주의 : 템플릿은 H파일과 C파일로 나누지 않는 것이 좋음 **************************************************/ template class RVector : public std::vector { private: typename std::vector::iterator it; void count(int i) { it = begin(); for(int k=0; k [Data Struct] 큐 (Queue) - 링크드 리스트를 이용한 큐 #include #include typedef struct _NODE // 새로운 타입 선언 { int Data; struct _NODE *Next; } NODE; NODE *Front, *Rear; // Front = Get()함수를 쓸때 데이터 가져오기, Rear은 Put() 함수를 쓸때 데이터 저장하기 위해 사용 NODE *ptrNode; void InitializeQueue(void); void Put(int); void DisplayQueue(void); int Get(void); void main() { int ret; InitializeQueue(); printf("Put() 함수를 호출해 보죠!\n"); Put(1); Put(3); Put(10); Put(20); Put(12); print.. [Data Struct] 스택 (Queue) - 배열을 이용한 스택 Put() - 자료를 넣는 함수 Get() - 자료를 빼는 함수 #include #define MAX 100 /* Queue 선언 */ int Queue[MAX]; int Front, Rear; void InitializeQueue(void); // 큐 초기화 함수 void Put(int); // 데이터의 삽입 void DisplayQueue(void); // 큐를 보여줌 int Get(void); // 데이터의 꺼냄 void main() { int ret; InitializeQueue(); Put(1); Put(3); Put(10); Put(20); Put(12); printf("\n다섯 번의 Put() 호출 후 결과 \n"); DisplayQueue(); ret = Get(); ret = Get();.. [Data Struct] 스택 (Stack) - 링크드 리스트를 이용한 스택 스택은 쌓다의 의미 모든 스택의 공통점 LIFO 형식 (Last in First out) Pop() - 스택에서 꺼내는 함수 Push() - 스택에 넣는 함수 링크드 리스트를 사용 할 수 있고 배열을 사용 할 수도 있다. #include #include typedef struct _NODE { int Data; struct _NODE *Next; } NODE; NODE *head, *end; NODE *ptrNode; void InitializeStack(void); void Push(int); void DisplayStack(void); int Pop(void); int main() { int ret; InitializeStack(); Push(1); Push(3); Push(10); Push(20);.. [Data Struct] 이중 링크드 리스트 #include #include //malloc 함수를 쓰기 위해 포함 typedef struct _NODE { char Data; struct _NODE *Next; struct _NODE *Prev; } NODE; NODE *head, *end, *temp; NODE *temp1, *temp2, *temp3, *temp4; void Initialize(void); void InsertNode(NODE *); void DeleteNode(NODE *); void main() { NODE *ptr; int i=0; Initialize(); ptr=head->Next; for(i=0; iData); ptr=ptr->Next; } /* 새로운 노드 생성 */ printf("\n"); temp=(NODE *).. [Data Struct] 단순 링크드 리스트 #include #include //malloc 함수를 쓰기 위해 포함 typedef struct _NODE { char Data; struct _NODE *Next; } NODE; NODE *head, *end, *temp; NODE *temp1, *temp2, *temp3, *temp4; void Initialize(void); void InsertNode(NODE *); void DeleteNode(NODE *); void main() { NODE *ptr; int i=0; Initialize(); ptr=head->Next; for(i=0; iData); ptr=ptr->Next; } /* 새로운 노드 생성 */ printf("\n"); temp=(NODE *)malloc(sizeof(NODE)).. 이전 1 다음