내 목록의 초기 버전을 일부 조정했는데 이제 Maziero 교수의 자료에 명시된 요구 사항을 충족합니다. 테스트를 통과하기 위해 조정했고 C에서는 readapt를 사용하기로 결정했습니다. 사용 가능한 테스트 파일과 함께 컴파일하는 것이 그렇게 문제가 덜한 것 같았습니다.
이 목록의 코드를 다시 검토하면서 이중 연결 순환 목록 앞에 나오는 간단한 목록을 다시 검토해야 했기 때문에 코딩할 때 탄탄한 추론을 정리할 수 있었습니다.
각 노드가 값, 다음 노드에 대한 포인터, 이전 노드에 대한 포인터의 세 부분으로 구성된 구조입니다.
양방향 탐색이 가능하며, 노드를 제거하거나 추가하려면 이전 노드와 다음 노드의 지점만 조정하면 됩니다.
[head] [nó1] [nó2] [tail]
단순히 연결될 수도 있고(단방향 의미) 이중 연결될 수도 있습니다(이것이 제가 프로젝트에 사용하는 것입니다).
목록의 마지막 노드는 첫 번째 노드에 연결됩니다. 이는 목록에 자연스러운 끝점이 없음을 의미합니다.
목록은 끝에 도달하면 처음으로 돌아가기 때문에 무한정 스크롤할 수 있습니다.
순환 이중 연결 리스트를 사용하면 운영 체제에 순환 스케줄링 기능이 있습니다.
즉, 마지막 프로세스가 실행된 후 시스템은 첫 번째 프로세스로 돌아가서 계속 실행됩니다.
운영 체제에 세 가지 프로세스가 있다고 상상해 보세요.
[P1] [P2] [P3] [P1] ...
P3의 실행 시간이 끝나면 목록이 P1으로 직접 반환되어 지속적인 실행이 보장됩니다.
현재 운영 체제 코드는 여기에서 확인할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3