간단한 리스트 인데요.
길가온
#include stdio.h
#include stdlib.h
#include string.h
typedef struct list_node* list_pointer;
typedef struct list_node{
list_pointer link;
char data[4];
}lsit_node;
void node_input(list_pointer *a,list_pointer temp);
void node_del(list_pointer *a);
void node_view(list_pointer ptr);
void main(){
int n;
char data[4];
list_pointer head=(list_pointer)malloc(sizeof(list_node));
list_pointer temp;
head=NULL;
for(;;){
printf(1.입력 \n);
printf(2.삭제 \n);
printf(3.출력 \n);
printf(4.종료 \n);
printf(위 항목중 하나를 선택하세요! \n);
scanf(%d,&n);
if(n==1){
printf(문자열 입력 : );
scanf(%s,&data);
temp=(list_pointer)malloc(sizeof(list_node));
if(temp==NULL){
printf(memory is full);
}
else{
strcpy(temp-data,data);
temp-link=NULL;
node_input(&head,temp);
}
}
else if(n==2){
node_del(&head);
}
else if(n==3){
node_view(head);
}
else if(n==4){
printf(종료);
break;
}
}
}
void node_input(list_pointer *a, list_pointer temp){
if(*a != NULL)
node_input(&(*a)-link,temp);
else
*a=temp;
}
void node_del(list_pointer *a){
list_pointer temp;
if(*a == NULL)
printf(삭제 할것이 없습니다. \n);
else{
printf(삭제한 데이터 : %s \n,(*a)-data);
temp=*a;
*a=temp-link;
free(temp);
}
}
void node_view(list_pointer ptr){
if(ptr == NULL)
{
}
else{
for(;ptr;ptr=ptr-link)
printf(입력한 문자열 : %s\n,ptr-data);
}
}
이부분에서 조금 추가를 해야 하는데 5번 입력을 받고나면 더이 상 못입력한다고 출력을 할려고 하는데 어디서 추가를 해주어야 할지 잘 모르겠네요..아무리 해도 계속 에러가 생겨서요.