두개의 연결리스트 연결 구현방법
제나
두개의 연결리스트 list1과 list2를 입력받아 list1 뒤에 list2를 연결하는 함수 listcat을 c언어로 구현하는 문제.
함수의 원형 : void listcat(node *list1, node *list2)
함수의 원형을 이용해, 함수의 body를 채워넣는 문제.질문 내용 :
void listcat(node *list1, node *list2)
{
node temp;
if(is_empty(*list1))
return *list2;
else
{
if(!is_empty(list2))
{
for(temp = list1; temp - link; temp = temp - link); //이 부분도 제일 어려움..
temp - link = list2;
}
return list1;
}
}
어느 부분이 잘 못 됬는지 알고싶습니다.
포인터 쓰는 부분이 헤깔리는데..
확실하고 명쾌한 해설 부탁드립니다.
-
딸기맛사탕 2023-06-12
그리고 함수가 void 형인데도 return 을 Node 로 하고 계시네요..
Node listcat(Node *list1, Node *list2); 이게 더 맞지 않을까요..
그리고 포인터에 대해서 개념도 부족하신거 같은데요.. Node 포인터를 사용하게 되면
list1 의 리턴은 없어도 됩니다.. 구지 쓰고 싶으시다면 저 함수 모양처럼... -
쇼콜라데 2023-06-12
그러면 temp = list의 마지막 인덱스 값 ; temp list1 마지막 인덱스 + list2 마지막 인덱스 ; temp += 인덱스 증가.. 가 되지 않을까요..
-
희미해 2023-06-12
그리고 뒤에다가 붙이실려면 항상 list1 의 마지막 인덱스 값을 알고 있어야지
뒤에다가 붙이기 편합니다.. -
연하얀 2023-06-12
link 는 뭔가요...