码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构:第五章学习小结

时间:2020-05-31 20:14:31      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:直接   int   数据结构   后序   one   nbsp   中序遍历   struct   整型   

思维导图

技术图片

 

 

算法小结

1.遍历算法

①先序遍历(中序遍历、后序遍历与之类似)

技术图片
1 void PreOrderTraverse(BiTree T) 
2 { //递归算法
3    if(T)//此时树非空  若树空则直接结束
4    { 
5        cout << T -> data; //访问根结点 
6        PreOrderTraverse(T->lchild); //遍历左子树 
7        PreOrderTraverse(T->rchild); //遍历右子树 
8    } 
9 }
先序遍历

②层次遍历(利用队列先进先出的特点)

技术图片
 1 typedef struct biTNode
 2 { 
 3     TElemType data; 
 4     struct biTNode *lchild, *rchild;//左右孩子指针
 5 }BiTNode, *BiTree; //二叉树链表
 6 
 7 void fun(BiTree T) 
 8 { //层次遍历
 9     queue<BiTNode *> q;
10     q.push(T);//根结点入队
11     BiTNode *p;
12     while (!q.empty()) 
13    { //q非空则继续访问队列
14         p = q.front(); //取队头元素
15         q.pop();
16         if (p!=NULL)
17        { 
18             cout << p->data;
19             q.push(p->lchild);//左孩子入队
20             q.push(p->rchild); //右孩子入队
21        } 
22     } 
23 }
层次遍历(链表)

2.寻找根结点(适用于题目给出孩子结点来创建)

 

①在定义树的时候打包根结点,方便后续调用;

②利用check数组,将其初始化为false,后续创建树的过程中,将孩子结点的编号作为check数组下标,若出现则变为true,以此找出根结点。

 

其他知识点小结

1.定义数组

技术图片
1 //第一种:在堆申请空间,推荐第一种写法
2 int n;
3 cin >> n;
4 int *a = new int [n];
5 
6 //第二种:此时n的值可能超过栈空间的大小,c语法正确,c++不支持
7 int n;
8 cin >> n;
9 int a[n]; 
定义数组

2.动态分配数组

技术图片
1 int *data;//定义指向data整型数组的指针
2 int n;
3 cin >> n;
4 data = new int[n];//使用new来申请空间 动态分配 避免浪费
5 delete[] data;//释放空间
动态分配数组

 

数据结构:第五章学习小结

标签:直接   int   数据结构   后序   one   nbsp   中序遍历   struct   整型   

原文地址:https://www.cnblogs.com/Function-F/p/13020727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!