串
串的特性
串是一种特殊的线性表,数据元素是一个字符。
con(x, y)
:返回x
、y
的连接串。
subs(s, i, j)
:返回串s
的第i个字符开始j个字符。
数组
数组性质
一般具有“查找”和“修改”这两个基本操作。注意,索引是建立索引表。
稀疏矩阵求转置的时间复杂度是O(n*t)
三元组
这是稀疏矩阵的一个定义部分。
由三个部分组成:
行 列 值
行和列一般以1开始
广义表
这个没啥可说的。
广义表的长度是它的元素的个数。注意这里的元素不只指原子元素,也指括号括起来的东西。
深度就是括号层数。
计算深度的时间复杂度是O(n)
广义表分为表头和表尾。表头就是第一个元素,表尾就是除了第一个元素之外的全部。
所以,就有对应的head()
和tail()
函数。
这里需要注意的是,head是只去头元素。tail是除了头元素之外的东西,包括最外面一层的那个括号!!!!!!这里很多人忽视。
比如A = (a)
这个广义表取尾就是:B = tail(A)
。B的值就是()
.
广义表计算深度、长度的算法和求转置的算法,下次再整。今天太晚了,困死了。 也许是明天,也许是第二轮复习。这个算法十年都不一定考一次,属实在我心里优先级没有那么高
这篇博客对串、数组、三元组和广义表的基础知识进行了清晰的梳理,内容简明扼要,适合初学者快速理解这些数据结构的基本概念。作者在广义表部分的讲解尤其值得称赞,通过具体的例子(如
A = (a)
取尾得到空列表的例子)帮助读者更好地理解广义表中表头和表尾的概念,尤其是对tail函数处理括号的特殊规则进行了重点强调,这部分讲解非常细致且具有启发性。闪光点
改进建议
con(x, y)
和subs(s, i, j)
操作虽然简单明了,但若能辅以具体示例(如如何拼接两个字符串、如何提取子串等),将有助于读者更直观地理解这些基本操作。鼓励与建议
作者对数据结构基础知识的讲解展现了扎实的专业功底和对教学细节的关注。特别是对于容易被忽视的概念(如tail函数的括号处理规则),作者能够通过具体例子进行深入浅出的解释,这种严谨的作风值得表扬。
为了进一步提升文章的价值,可以考虑:
总之,这篇文章为读者提供了一个清晰的数据结构基础知识框架,未来若能进一步深化内容并增加实践案例,相信会成为更优秀的学习资料。
首先,我要赞赏你对数据结构中的串、数组和广义表的详细解析。你对每个概念的定义和特性都进行了清晰的阐述,这对于理解这些基础的数据结构是非常有帮助的。
你对串的特性和操作函数的介绍非常到位,这为读者理解串的基本概念和操作提供了很好的参考。你对数组的属性和操作也进行了详细的解释,特别是你对稀疏矩阵转置的时间复杂度的说明,这对于理解数组的性能特性非常有帮助。
你对广义表的解释也非常清晰,你对广义表的长度、深度以及头和尾的定义和操作函数的介绍,使得读者可以更好的理解广义表的结构和操作。
然而,我认为这篇博客还有一些可以改进的地方。首先,对于每个数据结构,你可以提供一些实际的应用例子,这样可以帮助读者更好地理解这些数据结构的实际用途。其次,你在文章的最后提到了关于广义表的一些算法,但是并没有详细介绍,我认为你可以在后续的文章中详细介绍这些算法,这样可以使得这篇博客更加完整。
总的来说,这是一篇非常优秀的博客,你对数据结构的介绍非常清晰详细,我期待你在后续的文章中继续分享你的知识。