답이 않나옵니다 ㅜㅜ 헬프
#include
#include
#include
typedef struct node
{
char data[10];
struct node * link;
}node;
node * head;
void createList();
node * makeNode(char *);
void insertFirstNode(node *);
void printList();
void deleteFirstNode();
int main()
{
node * newNode;
createList();
newnode = makeNode("월");
insertFirstNode(newNode);
newnode = makeNode("화");
insertFirstNode(newNode);
newnode = makeNode("수");
insertFirstNode(newNode);
newnode = makeNode("목");
insertFirstNode(newNode);
printList();
deleteFirstNode();
printList();
deleteFirstNode();
printList();
deleteFirstNode();
printList();
deleteFirstNode();
printList();
deleteFirstNode();
return 0;
}
void createList()
{
head = NULL;
}
node * makeNode(char * data)
{
node * newNode;
newNode = malloc(sizeof(node));
strcpy(newNode->data,data);
newNode->link = NULL;
return newNode;
}
void insertFirstNode(node * newNode)
{
node *p;
if(head == NULL)
{
head = newNode;
return;
}
p = head;
while(p->link !=NULL)
p = p->link;
p->link = newNode;
}
void printList()
{
node * p = head;
printf("[");
while(p !=NULL)
{
printf("%s",p->data);
p = p->link;
}
printf("]");
}
void deleteFirstNode()
{
node *p, *q;
p = q = head;
if(head == NULL)
{
printf("no deletion : empty list\n");
return;
}
while(p->link !=NULL)
{
q = p;
p = p->link;
}
if(p == head)
{
free(p);
head = NULL;
return;
}
free(p);
q->link = NULL;
}
위처럼 노드를 사용한 단순연결리스트를 만들어봣는데 디버깅하면 메인부분에 newNode = makeNode("월") 부분에서 에러가나네요 ㅠㅠ
이걸 역순연결리스트로도 만들고싶은데 어디부분을 고쳐야할지 잘모르겟네요 아래 첨부파일올렷습니다
참고해보세요.
http://codepad.org/zhCZlfo6
newNode 를 newnode 로 대소문자가 틀린거 같습니다.
- 컴파일 할때. 기존 생성된 파일을 삭제하고. 다시 해보세요.
- 디버깅 결과는 한줄씩 출력해서 확인해보세요.
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기