단일링크드리스트 큐 구현한건데요..ㅠㅠ
모아
지금 자료구조 단일링크드리트드로 큐를 구현하는걸 제가 짜본건데요...
거의 다 된듯싶은데 거의다 완성됐는데 자꾸 에러가 떠버리네요...
돌아가다가도 막 이것저것 넣어보면 에러나버리고...
이걸로 몇시간을 끌고있는지... 도움좀 부탁드립니다..
#include stdio.h
#include stdlib.h
#include conio.h
typedef struct lister{
int number;
struct lister *link;
}node;
node *head, *front, *rear;
void menu(void);
void enqueue(int);
void dequeue(void);
void display(void);
main()
{
int input;
int num;
front = (node *)malloc(sizeof(node));
rear = (node *)malloc(sizeof(node));
front = rear;
rear-link = NULL;
while(1)// 막돌려
{
menu();
scanf(%d,&num);
switch(num)
{
case 1:
printf(넣고자하는 값을 입력 : );
scanf(%d,&input);
enqueue(input);
printf(\n지금 들어 있는 값들 : );
break;
case 2:
dequeue();
break;
case 3:
display();
break;
case 4:
exit(1);
}
}
}
void enqueue(int a)
{
node *temp;
temp = (node*)malloc(sizeof(node));
if(front == NULL)
{
front=(node*)malloc(sizeof(node));
front-link=NULL;
rear=front;
}
else
{
temp=(node*)malloc(sizeof(node));
temp-number = a;
rear-link = temp;
rear=temp;
}
}
void dequeue(void){
node *temp;
temp = (node*)malloc(sizeof(node));
printf(삭제된값은 : %d 입니다..,front-link-number);
temp = front;
front-link = front;
free(temp);
}
void display(void)
{
node *temp;
temp = (node*)malloc(sizeof(node));
temp = front-link; //이부분은 왜 그냥 front가아니라 front-link를 해줘야하는지..걍 프런트하니깐
//첫번째값에 쓰레기값이 나오더군요.. 왜그런지;;ㅠㅠ
while(1)
{
printf(%d ,temp-number);
temp = temp-link;
if(temp rear)
return;
}
}
void menu(void)
{
printf(\n----메뉴----\n);
printf(-- 1.삽입 --\n);
printf(-- 2.삭제 --\n);
printf(-- 3.출력 --\n);
printf(-- 4.종료 --\n);}
-
우미
솔직히 소스 진짜 불필요하게 짜신듯...
-
콘라드
node *head;
이 변수는 언제 사용하죠?