이중연결 리스트 질문입니다.
해긴
질문 제목 :이중연결 리스트 질문입니다.질문 요약 :헤드노드를 하나 만들고 노드 4개를 만들어 1~4까지의 숫자를 집어넣습니다. 데이터 값을 출력합니다.그리고 새로운 노드를 2~3사이에 삽입하여 그 결과(데이터값)를 출력하는 문제입니다.질문 내용 :지금 일단 제가 짠 소스인데 이중연결 리스트를 이런식으로 배열을 써서 해도 되나요?
#include stdio.h
#include malloc.h
typedef struct node *node_pointer;
typedef struct node {
node_pointer llink;
int data;
node_pointer rlink;
}*node_pointer;
node_pointer node[6];
void print_list(node_pointer);
int main()
{
int i;
for(i=0;i5;i++){//노드 생성
node[i]=(node_pointer)malloc(sizeof(node));
}
for(i=0;i5;i++){//노드 데이터 링크
if(i==0){
node[i]-llink=NULL;
}
if(i==4){
node[i]-rlink=NULL;
}
node[i]-llink=node[i-1];
node[i]-data=i;
node[i]-rlink=node[i+1];
}
for(i=0;i5;i++){
printf( %d , node[i]-data);
}
printf(\n\n\n);
node[5]=(node_pointer)malloc(sizeof(node));
node[5]-data=5;
node[5]-llink=node[2];
node[2]-rlink=node[5];
node[5]-rlink=node[3];
node[3]-llink=node[5];
print_list(node[1]);
return 0;
}
void print_list(node_pointer a){
printf(결과확인: );
for(;a;a=a-rlink){
printf(\ndata : %d , a-data);
printf( link : %d \n, a);
printf(llink : %d , a-llink);
printf( rlink : %d , a-rlink);
}
printf(\n);
}
-
샤르
배열로 처리를 해도 결과가 맞게 처리할 수 있지만,
연결리스트는 동적으로 메모리를 할당하는 데에 의미를 두고 있습니다.