数据结构先序遍历代码
时间: 2024-01-09 09:22:15 浏览: 49
以下是一个数据结构中二叉树的先序遍历代码示例:
```c
typedef struct Node{
char data;
struct Node* left;
struct Node* right;
}BiNode,*BiTree;
void PreOrder(BiTree T){
if(T){
visit(T);
PreOrder(T->left);
PreOrder(T->right);
}
}
```
在这个示例中,我们定义了一个二叉树的结构体`BiNode`,其中包含了一个字符类型的数据`data`,以及左子树和右子树的指针`left`和`right`。`BiTree`是`BiNode`的指针类型。
`PreOrder`函数是用来进行先序遍历的,它接受一个二叉树的指针作为参数。在函数内部,首先判断当前节点是否为空,如果不为空,则先访问当前节点(可以根据具体需求进行相应的操作),然后递归调用`PreOrder`函数分别对左子树和右子树进行先序遍历。
请注意,这只是一个示例代码,具体的实现可能会根据具体的需求和数据结构的定义有所不同。
相关问题
数据结构创建二叉树的先序遍历
以下是使用先序遍历创建二叉树的示例代码:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def createTree(preorder):
if not preorder:
return None
val = preorder.pop(0)
if not val or val == '#':
return None
root = TreeNode(val)
root.left = createTree(preorder)
root.right = createTree(preorder)
return root
preorder = ['A', 'B', 'C', '#', '#', 'D', '#', '#', 'E', 'F', '#', '#', '#']
root = createTree(preorder)
```
其中,`preorder`是二叉树的先序遍历结果,`#`表示空节点。`createTree`函数通过递归的方式创建二叉树,每次从`preorder`中取出一个元素作为当前节点的值,如果该值为`None`或`#`,则返回`None`,否则创建一个新的节点,并递归创建左右子树。最后返回根节点。
如何用先序遍历建立二叉树数据结构
以下是使用先序遍历建立二叉树的Python代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def buildTree(self, preorder: List[int]) -> TreeNode:
if not preorder:
return None
root = TreeNode(preorder[0])
stack = [root]
for i in range(1, len(preorder)):
if preorder[i] < stack[-1].val:
stack[-1].left = TreeNode(preorder[i])
stack.append(stack[-1].left)
else:
while stack and preorder[i] > stack[-1].val:
last = stack.pop()
last.right = TreeNode(preorder[i])
stack.append(last.right)
return root
```
其中,TreeNode类表示二叉树的节点,buildTree函数接收一个先序遍历的列表,返回一个二叉树的根节点。具体实现过程如下:
1. 如果先序遍历列表为空,则返回None。
2. 创建根节点,将其入栈。
3. 从第二个元素开始遍历先序遍历列表,如果当前元素小于栈顶元素的值,则将其作为栈顶元素的左子节点,并将其入栈。
4. 如果当前元素大于栈顶元素的值,则不断弹出栈顶元素,直到栈为空或者当前元素小于栈顶元素的值。将当前元素作为最后一个弹出的节点的右子节点,并将其入栈。
5. 遍历完先序遍历列表后,返回根节点。
相关推荐
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)