비주얼 스튜디오 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;

}