原文:二叉树算法引发的思考:指针参数传递、引用的陷阱

最近想熟悉一下基本的数据结构和算法,于是写了一个二叉树程序,功能很简单,只有二叉树的建立和遍历。在这个过程中,却发现了一些平时没有注意到的细节问题,写出来作为总结和大家分享。 待讨论和遇到的细节问题如下: 常见的定式思维:指针作为参数传递,是否就不需要再赋值,因为指针指向的值会同步更改,但是,你有考虑过,如果指针变量本身的值被更改了呢 怎么办 比较不常用的用法,针对指针变量的引用,你用过吗 前提: ...

2013-06-19 15:23 7 1257 推荐指数:

查看详情

指针参数传递

1、指针作为参数传递进去的仅仅只是指针的值,而不是指针的地址,或者说只是指针的一份拷贝,例如: 1、例子中,指针p的拷贝传入了方法中(其地址变了,说明是另一变量;值和指向的内存块数据没变) 2、将p的拷贝视作p1,p1改变了其所指向的内存块的值为11 3、p1的值改变为a的地址 ...

Fri Oct 26 18:40:00 CST 2012 1 15725
二叉树基本算法

仅供JavaScript刷题参考用。 二叉查找树和平衡二叉树 完全二叉树 若设二叉树的深度为k,除第 k 层外,其它各层 (1~k-1) 的结点数都达到最大个数,第k 层所有的结点都连续集中在最左边,这就是完全二叉树。 其它树:满二叉树、完美二叉树、哈弗曼树、二叉查找树BST ...

Sun Apr 12 04:46:00 CST 2020 0 886
算法——二叉树

定义: 二叉树(Binary Tree)是n(n>=0)个节点的有限集合,该集合或者空集(称为空二叉树),或者由一个根节点和两棵互不相交的,分别称为根节点的左子树和右子树的二叉树组成。 特点: 每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点。注意 ...

Sat Jul 20 18:13:00 CST 2019 0 2111
二叉树基本算法

目录 1 二叉树基本算法 1.1 二叉树的遍历 1.1.1 二叉树节点定义 1.1.2 递归实现先序中序后序遍历 1.1.3 非递归实现先序中序后序遍历 1.1.4 二叉树按层遍历 ...

Tue Jul 28 19:48:00 CST 2020 0 525
C/C++ 函数参数传递:传值,传指针,传引用

前面我们介绍了函数的调用约定,明白了函数调用者与被调用者之间传递参数的顺序与如何进行栈恢复的。 实际上,函数调用者如何将参数传递给被调用者也是有讲究的。 总的来说,函数参数传递分为3种情况:传值,传指针和传引用。首先,理解一下实参与形参的概念。int func(int x)//x是形参 ...

Thu Jun 27 22:23:00 CST 2019 0 755
c指针作为参数传递以及指针指针

指针作为函数参数传递 函数参数传递的只能是数值,所以当指针作为函数参数传递时,传递的是指针的值,而不是地址。 输出结果: %p为指针所指向的数据的地址,这里既为变量b的地址。 在没有进入pointer函数之前,变量p存储的值为28FF3C,变量p的地址 ...

Thu Apr 06 17:46:00 CST 2017 1 15630
二叉树遍历算法

首先,个人认为,二叉树是很能体会递归算法思想的,因为二叉树的结构是leftTree->root<-rightTree,对于每个非叶子节点,该规律都适用,因此关于二叉树的很多算法也都能用递归思想搞定。递归的优点在于代码简洁,但效率却是问题。其次,对于各种顺序的遍历,又有着相应的非递归算法 ...

Thu Apr 06 05:05:00 CST 2017 0 14950
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM