最近开始学习数据结构与常用算法。用c语言实现各种数据结构与算法。有的算法感觉比刚接触数据时理解起来更加自然顺畅了。重要的是认识到,一个指针就可以代表一种数据结构。这个指针指向链表,该指针就可以代表链表,指向一棵树,就代表这棵树。有了指针,就可以对链表、二叉树,做任何操作了。学习了快速排序算法,链表和二叉树的创建和增删改查操作。这也是数据结构最基础的能力要求了吧。看了程序员面试金典这本书,继续学习数据结构和算法。
二叉树和递归关系这么紧密,以前没有认识到。二叉树的创建需要递归创建,查找某一个数据时,也需要用递归的方式进行查找。遍历的时候,也需要用递归的方式,深度优先遍历。除非用广度优先遍历,不用递归。深度优先遍历,前序中序后序,都要用递归。今天终于知道了,二叉树的基本操作了。
二叉树在深度优先遍历时,不只是有一个指针,而是2的n次方个指针,第一次遍历,根据根节点,有了左右两个孩子指针。第二次遍历,左孩子分支节点又有两个指针,同时右孩子分支节点又有两个指针。这样,同时拥有多个指针,可以指向所有的节点了。这就是递归,而且是左右各一支。
数据结构学习
于 2024-12-23 13:38:51 首次发布