답이 않나옵니다 ㅜㅜ 헬프
#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 로 대소문자가 틀린거 같습니다.
- 컴파일 할때. 기존 생성된 파일을 삭제하고. 다시 해보세요.
- 디버깅 결과는 한줄씩 출력해서 확인해보세요.
#include <stdio.h> 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; printf("insert\n"); printf("p %x\n", p); while(p->link !=NULL) { p = p->link; printf("p %x\n", p); } p->link = newNode; } void printList() { node * p = head; printf("["); while(p !=NULL) { printf("%s", p->data); p = p->link; } printf("]"); printf("\n"); } void deleteFirstNode() { node *p, *q; p = q = head; if(head == NULL) { printf("no deletion : empty list\n"); return; } printf("delete\n"); while(p->link !=NULL) { q = p; printf("q %x\n", q); p = p->link; } if(p == head) { printf("free(p) %x\n", p); free(p); head = NULL; return; } free(p); q->link = NULL; }----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기