申请当熊猫主播:数据结构算法问题

来源:百度文库 编辑:高考问答 时间:2024/05/09 10:37:38
用C语言或C++实现 请高手提供算法
先付100分 有答案在追送100

树的问题

模拟DOS操作系统目录管理功能(建立、删除、修改当前目录、显示目录结构、复制): 1
1) md \sun 在根目录下建立目录sun
2) md \zhao 在根目录下建立目录zhao
3) cd \sun 改变当前目录为 sun
4) md ann 在当前目录下创建目录ann
5) md John 在当前目录下创建目录John
6) md \zhao\son 在zhao目录下建立目录son
7) cd \ 改变当前目录为根目录
8) dir 显示当前目录结构
9) dir \sun 显示sun目录结构
10) rd \sun 删除目录sun及其子目录

看了你的功能。建议用二叉树来做最好。

因为二叉树和层次和关系完全符号操作系统目录管理。

链表,双向链表,图,散列表都不符和层次性。

但是楼上说的那个结束不对。

楼上说的结构只应用于一个目录只能包含一个子叶的形式。

struct DirNode{
char szDirName[32];
struct DirNode* pParent;
struct DirNode* pBrother;
struct DirNode* pFirstChild;
}DIRNODE;

这个结构只可以有一个子目录。如果子目录中有多个子叶就不能用了。

所以我给你的提示就是:

目录结构是二叉树。(主体结构)

目录结点用链表,每个链表

就可以实现操作系统的目录功能。

功能就不说了。无非是对接点和内容的复制。

记得复制的时候要全对当前树点进行遍历。

不单是给一个指针就行了。(应该是全体复制。)要不然只给一个指针。的话原结点被删除后。你复制的东东也就没了。
所以是相互独立的。

看来这个题目是你们的课程设计吧。
看似很容易。担最不好做的就是复制。别的功能很简单。

这个查下书,基本上数据结构和算法的书都有这个例子

用链表来模拟树,如:
struct DirNode{
char szDirName[32];
struct DirNode* pParent;
struct DirNode* pBrother;
struct DirNode* pFirstChild;
}DIRNODE;

设定根目录为:
DIRNODE DirRoot = {"\",NULL,NULL,NULL};

如此之后,这棵树就建立起来了,唯一麻烦点的地方就是解析目录路径了。

你这个东东做起来太麻烦了, 有个函数:
system("cd\");
不就全都解决了.