답변:
나는 당신이이 것들을 이해하지 말아야한다고 생각합니다. 그것들은 정말로 근본적이기 때문입니다. 그러나, 당신이 그들을 이해하지 못하는 것은 나쁘지 않습니다. 자녀에게 연결된 목록을 설명 할 수 있습니다. 선생님이 당신에게 설명하지 못했다면 그것은 잘못입니다. 따라서 걱정하는 데 시간을 소비하지 말고 설명 할 수있는 사람을 찾으십시오. 종종 동료 학생은 정규 학업보다 훨씬 더 나은 교사입니다.
각 캐리지에 충분한 용량이 있고 하나의 데이터를 포함 할 수있는 철도 캐리지 세트가 있다고 가정하십시오. 각 캐리지 끝에는 다른 종류의 후크가있어 다른 캐리지의 앞면에 부착 할 수 있습니다.
이것은 실제로 당신에게 연결된 목록을 제공합니다 :
이와 달리 어레이는 주어진 수의 캐리지가있는 열차로 생각할 수 있으며 어떤 방식으로도 재배치 할 수 없습니다. 당신이 할 수있는 것은 그 안의 데이터를 변경하는 것입니다. 이 모델은 또한 배열이 가진 많은 문제를 설명합니다 :
스택과 관련하여 : "스택"은 아이디어보다 데이터 구조가 적습니다. 스택의 개념은 책의 스택과 매우 유사하게 작동한다는 것입니다. 책을 스택 위에 만 놓을 수 있으며 맨 위 책을 스택에서 꺼낼 수 있습니다 (적어도 책이 충분히 무거운 경우).
즉, 캐리지의 데이터를 책으로, 첫 번째 캐리지의 책을 스택의 최상위로 생각하면 연결된 목록을 스택으로 사용할 수 있습니다.
이것이 도움이 되었기를 바랍니다. 아닐 수도 있습니다. 아마도 당신은 더 시각적 인 유형일 것입니다. 이 경우 시각적 설명을 잘 해주고 설명해 줄 수있는 사람을 찾으십시오. 오래 걸리지는 않지만 절대적으로 가치가 있습니다.
지금이 문제를 해결해도 괜찮습니다. 그러나 단지 그것을 받아들이는 것은 장기적으로 옵션이 아닙니다.
내가 좋아하는 CSCI 선생님을 인용하려면 :
"Panic, but panic early."
데이터 구조가 어렵게 들립니까? 나에게는 그것이 추상적이며 약간 복잡하고 무엇보다도 중요합니다!
데이터 구조는 필수 과정입니다. 그리고 싸우는 것이 일반적이지만 계속 진행하십시오! 당신이 당신의 Wheaties를 먹고 그것을 유지하는 한, 당신은 아래에 bag
가득 채워진 무지개에 도달합니다 generic items
.
다른 답변에서 아주 좋은 점은 추가 할 한 가지 참고 사항입니다 .IMO 연결 목록은 간접 참조 ( 참조 / 포인터 를 통해 표현 됨)를 기반으로하기 때문에 많은 사람들에게 스택보다 더 어려울 수 있습니다 . 그리고 이러한 기본 개념은 이해하기 어려울 수 있습니다 .
데이터 구조는 내가 처음으로받은 "하드"클래스였습니다. 우리는 Java 대신 Fortran 77을 사용했지만 개념은 거의 동일합니다.
링크 된 목록의 개념을 이해하는 데 반 친구보다 일주일이 걸렸습니다. 과제를 연기했지만 교수와 약간 실망스러운 두 번의 회의를 마친 후 마침내 클릭했습니다 (마침내; 마지막으로 이해했을 때 머리에서 "클릭"소리가 들렸습니다).
CS 커리큘럼 어딘가에 문제 가 있습니다. 약점이 어디에 있는지, 어떻게 해결해야하는지 이해한다면 걱정할 필요가 없습니다.
연결된 목록을 이해하는 데 어려움이 있었거나 구현에 문제가 있었습니까?
새로운 프로그래머가 어려움을 겪는 것은 드문 일이 아닙니다 . 글을 쓸 때 실제로 무엇을 의미 하는지 생각해야 할 수도 있습니다 .
list.head = null;
Element e = new Element(...);
e.next = list.head;
list.head = e;
언어 의미를 제대로 이해하지 못했기 때문에 동일한 연습에서 ALGOL / W에서 모두 뒤틀 렸습니다. 1 년 후, 나는 왜 어려움을 겪었는지 간신히 기억할 수있었습니다.
소프트웨어 개발 분야에는 다른 분야보다 어려운 분야가 있습니다. 특정 알고리즘이든, 특정 디자인 패턴 또는 특정 절차인지에 따라 사람마다 다릅니다. 나는 그것을 완전히 이해하기 전에 실제 프로그램에서 무언가를 사용해야한다는 것을 알았습니다.
누군가가 모든 것을 알고 있다고 주장하고 무언가를 배우는데 문제가 발생하지 않았다면 더 걱정할 것입니다.
개인적으로 나는 연결리스트에 문제가있는 것 같지 않았지만, 8 년 동안 어느 곳에서나 사용했던 프로그램 에서 일하면서 매일 같이 일했다. 만큼 당신이 알고있는 곳에 당신이 당신의 기억을 상기하고 "문제"가 영역을 알고 필요한 정보를 찾을 수 당신은 확인을해야합니다.