자료구조 리스트 부분에서요..
난새
질문 제목 :자료구조 리스트 질문입니다질문 요약 :일단 연결되어 출력되는지 알아보려고 소스는 잤는데 에러는 안나는데
파일출력이 안됩니다.. 왜죠 ..
5 //정수 자료입력개수
1 2 3 4 5 // 데이터들..
이렇게 입력하면
1은 phead에 연결되는데 2로 넘어가는 과정에서 디버깅이 안되네요...
도와주십사 .. 어디가 어떻게 틀렸는지 가르쳐주시면 고맙겠습니다.
질문 내용 :
#include stdio.h
#include stdlib.h
typedef struct ListNode{
int data;
struct ListNode *link;
}ListNode;
void insert_node(ListNode **phead, ListNode *p, ListNode *new_node);
ListNode *search(ListNode *head, int x);
void display(ListNode *head);
FILE *in, *out;
int main(void)
{
int n, i;
ListNode *new_node;//new_node
ListNode *phead;//헤드포인터
phead=(ListNode *)malloc(sizeof(ListNode));
phead=NULL;
in=fopen(hw5.inp, rt);
out=fopen(hw5.out, wt);
fscanf(in, %d, &n);//입력할 수를 입력
for(i=0; in; i++)
{
new_node=(ListNode *)malloc(sizeof(ListNode));//구조체변수 new_node를 동적할당
fscanf(in, %d, &new_node-data);//데이터 입력
insert_node(&phead, search(phead, new_node-data), new_node);
}
display(phead);//연결 된 리스트 출력
return 0;
}
void insert_node(ListNode **phead, ListNode *p, ListNode *new_node)
{
if(*phead == NULL){
new_node-link=NULL;
*phead=new_node;
}
else if(p==NULL){
new_node-link=*phead;
*phead=new_node;
}
else{
new_node-link=p-link;
p-link=new_node;
}
}
ListNode *search(ListNode *head, int x)
{
ListNode *p;
p=head;
while(p!=NULL){
if(p-link-data==x) return p;//이전노드 탐색
p=p-link;//다음노드로 p를 옮겨줌
}
return p;
}
void display(ListNode *head)
{
ListNode *p=head;
while(p!=NULL){
fprintf(out, %d-, p-data);
p=p-link;
}
fprintf(out, \n);
}