2010-11-18 7 views
-2

배열을 연결된 목록으로 변환하려고합니다. 기본적으로 "머리"라는 구조가 생겨 첫 번째 요소 인 이되며 다른 요소는 노드가됩니다. 아이디어를 시작할 수 있습니까?배열을 연결된 목록 C

+2

쉽게 단지 혼란을 방지하기 위해 배열을 사용할 수 있도록 최선을에 데이터를 저장하는 새로운 노드를 추가 할 수 없습니다 질문이 뭐야? –

+2

@Blagovest - 사실, "왜"가 질문입니까;) – KevinDTimm

답변

3

배열을 반복하고 요소를 목록에 추가하는 것보다 간단한 솔루션은 없습니다.

+0

그게 내가 원하는 것입니다. 하지만 난 그것을 작동시킬 수 없다 – shadow7

1

C에서 링크 된 목록을 구현하는 표준 방법은 데이터 멤버와 다음 포인터가 포함 된 단일 노드 구조를 사용하는 것입니다. 새 노드를 원할 때마다 malloc 공간을두고 목록의 마지막 노드의 다음 포인터를 가리 키도록 설정하십시오. 마지막 노드의 다음 포인터는 NULL을 가리켜 야합니다.

첫 번째 요소에 대한 일반 포인터 만 잡고 있으면됩니다. 머리 포인터예요. 의 malloc을 사용하지 않고

+0

malloc 사용할 수 없습니다. 그래서 나는 그것을 지적 할 것이다. 그것은 가능합니까? – shadow7

+0

@ shadow7 : * 가능 *하지만 우아하지 않거나 실용적이지 않고 최대 노드 수와 같은 제약이 있습니다. malloc을 사용할 수 없다면 아마 노드 배열을 원할 것입니다. 당신이 시작한 배열을 고수 할 수도 있습니다. –

+0

@ shadow7 : 바울이 말한 바. 런타임에 메모리를 할당 할 수없는 경우 링크 된 목록을 사용할 필요가 없습니다. 그것들은 배열 대응 물보다 느리고 더 커질 것입니다. – nmichaels

1

당신이 (하지만 왜 지금의 malloc을 사용할 수 없습니다?)

+1

지난 회신 이래로 2 년이 지난 숙제에 관한 질문을 왜 되살리셨습니까? – moshbear