마지막 학기 프로젝트의 경우, 내 운영 체제 클래스의 모든 사용자는 의사 "Linux 파일 시스템"을 구현해야합니다. 아이디어는 파일, 폴더, 디렉토리 변경 등을 시뮬레이트하는 것입니다.C의 구조체, 포인터 및 트리
나는 C로 프로그램 할 때 문자열과 포인터로 작업해야한다는 것에 싫어한다. 불행히도 마음의 평화를 위해이 프로젝트는이 두 가지를 모두 포함하는 것으로 보인다. 필자는 포인터에 대해 비교적 불편하기 때문에 기초적인 트리 구조의 백엔드 구현이 건전하다는 확신을 얻을 수 있기를 바랬다.
typedef struct floorNode
{
char floorName[30]; //the name of the tree node
struct floorNode *parentPointer; //this is a pointer to the parent node. Null for the root node.
struct floorNode *childPointers[10]; //this is an array holding pointers to up to 10 child nodes.
char fileArray[10][30]; //this is an array of 10 'files', each of up to length 30.
//for this assignment, strings are the only type of "file"
} floorNode;
C에서 트리를 구현하는 적절한 방법입니까?
포인터로 작업하는 것을 좋아하지 않는다면 C에서 무엇이든 할 수 없을 것입니다. BTW에서는 대부분의 언어에 포인터가 있지만 참조로 호출하여 숨기려고하지만 대부분 동일한 문제가 적용됩니다. –
@mu는 너무 짧습니다. 참고 문헌이 훨씬 더 좋아요.하지만 그 말은 저보다 더 많은 경험담 일 것입니다. –
하나의 디렉토리에 10 개 미만의 파일과 하위 디렉토리가 있어야한다는 제한을 가진 파일 시스템이 당신이 원하는 전부라면 괜찮습니다. 그리고 노드의 절대 이름을 저장하는 것은 의미가 없다고 생각합니다. 왜 당신이 알아낼 수 있기를 바랍니다 –