연결리스트 큐 struct _node { int key; struct _node *next; }t_node; t_node *head = NULL, *tail = NULL; void front_insert(int n) //앞에 추가 { t_node *new_node = (t_node*)malloc(sizeof(t_node)); //공간할당 new_node->key = n; //값할당 new_node->next = head; head = new_node; //자신을 헤더로 } void insert_node(int n) //노드 추가 { t_node *new_node = (t_node*)malloc(sizeof(t_node)); //공간할당 new_node->key = n; //값할당 new_node->next = NULL; if(head == NULL) { head = new_node; tail = new_node; } else { tail->next = new_node; tail = new_node; } } int delete_node() //첫번째 노드값 반환 { t_node *node; int r; if(head == NULL) return -1; node = head; head = head->next; if(head == NULL) tail = NULL; r = node->key; free(node); return r; } int end_delete() { t_node *node; int r; node = head; //첫 노드 while(node->next !=tail) //끝 노드의 앞 노드를 찾는다. { node = node->next; //노드를 증가시킨다. } r = node->next->key; tail = node; //마지막 전노드로 tail변경 free(node->next); //마지막 노드 삭제 return }
0 개의 댓글:
댓글 쓰기