연결리스트 오류 질문입니다. [아까건 지웠어요...]
도1도캣
질문 제목 :연결리스트 오류 및 first/middle 리스트 질문입니다.질문 요약 :오류 수정 및 단순연결리스트 질문입니다.질문 내용 :
1. 아래 소스를 실행하면 잘 되긴 하는데
출력할 때 이상한 문자먼저 시작 후, 제가 입력한 값이 나와요.
그 부분을 수정하는 방법을 알고 싶습니다...
2. 첫번째 노드 추가와 자신이 넣고 싶은 위치에 노드를 추가하는 방법을 알고 싶습니다.
중간에 노드 추가방법을 몰라서 헤드도 왠지 어려운듯 싶네요...
초보자도 알 수 있는 쉬운방법 알려주시면 감사합니다...
3. 단순 연결리스트에서 맨 앞과 자신이 넣고 싶은 위치에 추가로 노드를 넣고 싶을 때는
switch~case 문도 사용해야 되나요..?
4. 마지막으로 제가 짠 소스는 맨 마지막에 노드를 추가하는 소스가 맞나요..?
질문이 많은것 같아 죄송합니다...
#includestdio.h
#includestdlib.h
#includestring.h
typedef struct node{
char name[20];
node *link;
}std_node;
std_node *head;
void initnode(){
head = (std_node *) malloc(sizeof(std_node));
head-link = null;
}
void insertnode(std_node *node, char *name){
std_node *newnode;
while(1){
if(node-link == null){
break;
}
node = node-link;
}
newnode = (std_node *) malloc(sizeof(std_node));
node-link = newnode;
strcpy(newnode-name, name);
newnode-link = null;
}
void printnode(std_node *node){
while(1){
if(node-link == null)
break;
printf(%s\n, node-name);
node = node-link;
}
printf(%s, node-name);
printf(\n);
}
void main(){
std_node *node;
char name[20]={0,};
int i=0;
node = (std_node *) malloc(sizeof(std_node));
node-link = head;
printf( - program start -\n);
initnode();
while(i=2){
printf( input name : );
scanf(%s, name);
insertnode(node, name);
i++;
}
printnode(node);
printf( - program end -\n);
}