///////////////////////////////////////////
도와달라고 징징글싸고 한번 확인하고 또 확인하다 또 잡음.
버그 1개 잡고 19개 오류문 사라지고
11개 오류문 남음
힘내라 나!
//////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct ListNode{
char data[10];
struct listNode * link;
}listNode;
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_h * 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=createLinkedList_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;
}
누군가 만들어놓은 소스코드를 본다는것은 굉장히 힘든일이죠 ㅠㅠ;;
가장 빠른길은 자신이 찾아내는것!ㅋㅋㅋ
NULL 이 필드명입니까? <- 이게 힌트가 되지 못했다니 안타깝네요
아니, 찾고 있음 기달리셈 성대씨
C언어는 대소문자를 구분해요
아니요 님이 찾아서 해결됬어요
head->NULL; 이렇게 쓰셧길래 NULL이 필드명이냐고 답을 해준거에요
속도 붙었다. 대문자,소문짜 버그랑 ->NULL 잡아서 6개 남음 ㅋㅋ
성대씨 힌트 ㄳ
근데 컴파일 오류겠죠 , 버그는 아닌듯
아, 오타라고 해야겠네요
컴파일 오류 다 잡아도 갈길이 멀거 같네요 그냥 우선 자고 내일 하시는게 나을듯