C指针与二叉树学习随笔
2014-09-11 16:29
232 查看
/* 输入 "AB D CE "
每次进行处理前先建立一个指向NULL的BiTNode类型指针,并作为参数传给函数调用
调用过程:1.申请动态分配空间malloc(sizeof(BiTNode))
2.指针指向它,将指针想象成罗盘针,可以随意转动,malloc返回的地址是其指向的目标位置
3.如果下颗要指向的树为空,没有字符,则把指针赋值NULL,即让指针指向0x000000
4.如果下颗树不为空,则利用指针调用malloc分配的空间装配树的相关内容(data),好好理解指针的调用作用。将树的信息存入malloc空间。
5. 右树也一样。
// a20140903BinaryTreeNode.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> #include<stdlib.h> typedef char ElemType; typedef struct BiTNode { char data; struct BiTNode *lchild, *rchild; }BiTNode ,*BiTree; //约定用户用前序遍历 void CreateBiTree(BiTree *T) { char c; scanf("%c",&c); if(' '==c) { *T = NULL; } else { *T = (BiTNode*)malloc(sizeof(BiTNode)); (*T)->data = c; CreateBiTree(&(*T)->lchild); CreateBiTree(&(*T)->rchild); } } //访问二叉树结点的具体操作,你想干嘛? void visit(char c,int level) { printf("%c 位于第%d层\n",c,level); } //遍历二叉树 void PreOrderTraverse(BiTree T ,int level) { if(T) { visit(T->data,level); PreOrderTraverse(T->lchild,level+1); PreOrderTraverse(T->rchild,level+1); } } int _tmain(int argc, _TCHAR* argv[]) { int level = 1; BiTree T = NULL; //T 是指向树结构的指针,被置为NULL CreateBiTree(&T); PreOrderTraverse(T,level); return 0; }
/* 输入 "AB D CE "
每次进行处理前先建立一个指向NULL的BiTNode类型指针,并作为参数传给函数调用
调用过程:1.申请动态分配空间malloc(sizeof(BiTNode))
2.指针指向它,将指针想象成罗盘针,可以随意转动,malloc返回的地址是其指向的目标位置
3.如果下颗要指向的树为空,没有字符,则把指针赋值NULL,即让指针指向0x000000
4.如果下颗树不为空,则利用指针调用malloc分配的空间装配树的相关内容(data),好好理解指针的调用作用。将树的信息存入malloc空间。
5. 右树也一样。
相关文章推荐
- 学习C指针的心得随笔
- 二叉树学习随笔
- Java学习的随笔(一)对象概念、this指针、权限修饰符
- 二叉树学习随笔
- 有关C语言指针学习思想的随笔常用形式的总结(原创)
- 【日常学习】【指针二叉树+BFS】Uva - 122 Trees on the level题解
- C/C++指针学习的两个经典实例
- vc++学习篇(四)—— 指针
- 指针的学习(好文收集)
- 现在项目可以改进和学习的地方随笔
- java 学习随笔
- c/c++中指针学习的两个绝好例子
- c语言学习零碎整理(9):传值调用,并不简单(特别是有指针的时候)
- C语言中指针的学习
- U2TP学习随笔(一)
- 我眼中的指针--学习指针不可少的好文章(转载)
- 我眼中的指针--学习指针不可少的好文章
- c++入门学习(内存与指针及数组)
- 数据结构学习之二叉树
- 学习使用指针 UNDERSTANDING POINTERS (for beginners)