[C]이중원형연결리스트 찾기기능 질문합니다.
회사원
#include stdio.h
#include stdlib.h
typedef struct list{
struct list *llink;
int data;
struct list *rlink;
}List;
List *createNode()
{
List *L;
L=(List *)malloc(sizeof(List));
L-data =0;
L-llink=L;
L-rlink=L;
return L;
}
void laddNode(List *L, int data)
{
List *newNode;
newNode=createNode();
newNode-data = data;
newNode-rlink = L;
newNode-llink = L-llink;
L-llink-rlink=newNode;
L-llink = newNode;
}
void raddNode(List *L, int data)
{
List *newNode;
newNode=createNode();
newNode-data = data;
newNode-llink = L;
newNode-rlink = L-rlink;
L-rlink-llink = newNode;
L-rlink=newNode;
}
void rprintNode(List *L)
{
List *p;
p=L-rlink;
while(p-rlink != L-rlink)
{
printf(%5d, p-data);
p=p-rlink;
}printf(\n);
}
void lprintNode(List *L)
{
List *p;
p=L-llink;
while(p-llink != L-llink)
{
printf(%5d,p-data);
p=p-llink;
}printf(\n);
}
void searchNode(List *L, int data)
{
int rcount=0;
int lcount=0;
List *p;
p=L-rlink;
while(p-rlink != L-rlink)
{
rcount++;
if(p-data == data) break;
p=p-rlink;
}
p=L-rlink;
while(p != L-llink)
{
lcount++;
if(p-data == data)break;
p=p-llink;
}
printf(찾는값은 %d , %d 번째 있습니다. \n, rcount, lcount);
}
int main(int argc, char *argv[])
{
List *L;
L=createNode();
int find;
int i;
for(i=0; i5; i++)
{
//raddNode(L,i+10);
laddNode(L,i+10);
}
rprintNode(L); // 14 ~ 10
lprintNode(L); // 10~14
printf(찾을 숫자를 입력하세요: );
scanf(%d,&find);
searchNode(L,find);
system(PAUSE);
return 0;
}
------------------------------------------
질문 내용 올리도록 하겠습니다.
함수 void형으로 searchNode라는 찾기 기능을 만들기 위해서 작성하였습니다.
어느 부분이 잘못되어있는지는 모르겠지만..
rcountNode 값은 잘 나오는대 lcountNode 쪽이.. 값이 제대로 잘 안 나옵니다.
어떻게 해야지 만약 10을 누르면 몇 번째에 10이 있습니다라고 오른쪽 rcountNode는 잘나오지만 lcountNode가 말썽입니다.
도와주세요!!