预计阅读本页时间:-
在结束对结构的探究之前,我们想要提一下结构多种重要应用中的一种:创建新的数据形式。计算机用户已经开发出一些比我们提到过的数组和简单结构更适用于特定问题的数据形式。这些形式的名称有队列、二叉树、堆、哈希表和图。许多这样的形式是由链接结构组成的。典型地,每个结构包括一或两项数据,再加上一或两个指向其他相同类型结构的指针。这些指针把一个结构和其他结构相链接,提供一条可以遍历整个结构树的路径。例如,图14.3是一个二叉树结构,每个单独的结构(或节点)都和它下面的两个节点相连。
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
图14.3 —个二叉树结构
图14.3中显示的分层结构(或树结构)是不是比数组更有效?考虑一棵具有10层节点的树的情况。它含有210-1,即1023个节点,可以存储多达1023个单词。如果单词是按某种规则来安排的,那么就可以从最高一层开始,逐层向下移动进行查找,最多只用9次移动就可以找到任何一个单词。如果把这些单词放在数组中,可能必须遍历所有的1023个元素,才能找到需要的单词。
如果您对这样的高级概念感兴趣,那么您可以参考任何关于数据结构的计算机科学书籍。使用C的结构,您几乎可以创建并使用这些书中给出的每种数据形式。第17章“高级数据表示”中也研究了一些这样的高级形式。
以上是本章中关于结构话题的结束语,不过我们还将在第17章中给出链接结构的例子。接下来,我们来看看C的另外三个处理数据的特性:联合、枚举和typedef。