비주얼 스튜디오 c++들어가서 소스파일 확장자 명을 c로 해서 c코딩 연습을 하고 있었는데요.
인텔리센스에선 오류 검출이 안되는데 실행하니까 오류가 막 61개 이렇게 떠요..
오류 양도 막 많은데 코드 초반부에서 부터 인식이 제대로 안된 느낌이거든요? 이게 왜 그런지 모르겠어요..
일단 코드 올려봅니다..
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef struct Queue_Node {
int data;
node* next;
node* prev;
}node;
typedef struct Queue_Head {
node* rear;
}head;
typedef struct Linked_List {
head* head;
node* front;
}queue;
queue* initQueue(void) {
head* newH = (head*)malloc(sizeof(head));
queue* newQ = (queue*)malloc(sizeof(queue));
newQ->head = newH;
newQ->head = NULL;
return newQ;
}
node* newNode(int value) {
node* newN = (node*)malloc(sizeof(node));
newN->data = value;
newN->next = NULL;
newN->prev = NULL;
return newN;
}
bool isEmpty(queue* q) {
if (q->head->rear == NULL) return true;
else return false;
}
queue* enQueue(queue* q,node* n) {
if (isEmpty(q) == true) {
printf("값 %d를 가진 노드를 큐에 삽입합니다.", n->data);
q->head->rear = n;
n->prev = q->head;
n->next = NULL;
return q;
}
else {
printf("값 %d를 가진 노드를 큐에 삽입합니다.", n->data);
n->next = q->head->rear;
n->prev = q->head;
q->head->rear->prev = n;
q->head->rear = n;
return q;
}
}
int deQueue(queue* q) {
if (isEmpty(q) == true) {
printf("큐가 비어있어서 -1 을 반환합니다.");
return -1;
}
else {
int front = 0;
node* now = q->head->rear;
while (now->next != NULL) {
now = now->next;
}
int front = now->data;
now->prev = now;
node* del = now->next;
now->next = NULL;
del->prev = NULL;
free(del);
printf("큐의 front %d를 dequeue했습니다..", front);
return front;
}
}
int peekFront(queue* q) {
if (isEmpty(q) == true) {
printf("큐가 비어있어서 -1 을 반환합니다.");
return -1;
}
else {
int front = 0;
node* now = q->head->rear;
while (now->next != NULL) {
now = now->next;
}
int front = now->data;
printf("큐의 front는 %d. %d 반환합니다.",front,front);
return front;
}
}
int main(void) {
queue* mQ = initQueue();
for (int i = 0; i < 10; i++) {
node* mN = newNode(i);
enQueue(mQ, mN);
peekFront(mQ);
}
return 0;
}
댓글 0