// 비주얼 스튜디오 2010으로 코딩했고.
//책에나온대로 배껴서 코딩했는데
//가장처음 함수의 선언에서 함수이름에 빨간줄.
//오류출력창에는 쓸데없이 제자리 있는{,{,* 같은거 잡고 늘어지네;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct listNode{
char data[10];
struct ListNode *link;
}
typedef struct {
ListNode * head;
}linkedList_h;
linkedList_h* createLinkedList_h(void);
void freeLinkedList_h(linkedList_h*);
void addLastNode(linkedList_h*,char*); //반환형 다음에 나오는 함수이름들이 오류줄..
void reserve(linkedList_h*); // 머가 잘못된거지..
void deleteLastNode(linkedList_h*);
void printList(linkedList_h*);
linkedList_hz createLinkedList_h(void){
linkedList_h* L;
L=(linkedList_h*) malloc (sizeof(linkedList_h));
L->head->NULL;
return L;
}
void addLastNode (linkedList_h* L,char* x){
listNode* newNode;
listNode* p;
newNode= (listNode*) malloc (sizeof(listNode));
strcpy(newNode->data,x);
newNode->link=NULL;
if(L->head == NULL)
L->head = newNode;
return;
}
void reverse(linkedList_h * L){
listNode* p;
listNode* q;
listNode* r;
p=L->head;
q=NULL;
r=NULL;
while(p!=NULL){
r=q;
q=p;
p=p->link;
q->link =r;
}
L->head=q;
}
void deleteLastNode(linkedList_h L){
listNode * previous;
listNode * current;
if(L->head==NULL) return;
if(L->head->link == NULL){
free(L->head);
L->head = NULL;
return;
}
else{
previous = L->head;
current = L->head->link;
while(current ->link !=NULL){
previous = current;
current = current->NULL;
}
free(current);
previous->link=NULL;
}
}
void freeLinkedList_h(linkedList_h* L){
listNode* P;
while(L->head != NULL){
p=L->head;
L->head = L->head->link;
free(p);
p=NULL;
}
}
void printList(linkedList_h* L){
listNode * p;
printf(\"L = (\");
p=L->head;
while(p !=NULL){
printf(\"%s\",p->data);
p=p->link;
if(p !=NULL){
printf(\",\");
}
}
printf(\")\\n\");
}
int main(){
linkedList_h * L;
L=createdLinkedList_h();
printf(\"공백 리스트 생성하기! \\n\");
addLastNode(L,\"월\");
addLastNode(L,\"수\");
addLastNode(L,\"금\");
printList(L); getchar();
printf(\"(3) 리스트 마지막에 노드 한개 추가하기! \\n\");
addLastNode(L,\"일\");
printList(L); getchar();
printf(\"(4) 마지막 노드 삭제하기! \\n\");
deleteLastNode(L);
printList(L); getchar();
printf(\"(5) 리스트의 원소를 역순으로 변환하기! \\n\");
reverse(L);
printList(L); getchar();
printf(\"(6) 리스트 공간을 해제하여, 공백 리스트 상태로 만들기! \\n\");
freeLinkedList_h(L);
printList(L);
getchar();
return 0;
}
비주얼 스튜디오 2010에선 6.0에서 안되던거 돌아가고
안되던거 되고 그러나요?
NULL 도 필드명임?
NULL 가르키니까
define NULL 0
이렇게 뜨는걸 보니
0으로 가는듯..