好久没有复习数据结构了 简单复习树转双链表
2016-06-19 18:57
423 查看
创建一个结构体
C语言风格 写起来比较舒服
void CreateBitree(BsTreeNode * &pRoot,int * &arr);
void change(BsTreeNode * node,BsTreeNode * &pTail);
struct BsTreenode
{
int m_value;
BsTreenode *m_left;
BsTreenode *m_right;
};
C语言风格 写起来比较舒服
void CreateBitree(BsTreeNode * &pRoot,int * &arr);
void change(BsTreeNode * node,BsTreeNode * &pTail);
struct BsTreenode
{
int m_value;
BsTreenode *m_left;
BsTreenode *m_right;
};
void main() { BsTreeNode *pRoot=NULL; BsTreeNode*pTail = NULL; int arr[] = { 10 ,6 ,4 ,0, 0, 8, 0, 0, 14, 12, 0, 0, 16, 0, 0 }; int *ptr = arr; CreateBitree(pRoot, ptr); change(pRoot,pTail); while (NULL != pTail) { cout << pTail->m_nvalue<<" "; pTail = pTail->m_pLeft; } cout << endl; system("pause"); }
void CreateBitree(BsTreeNode * &pRoot,int * &arr) { int dat; dat = *arr; ++arr; if (dat == 0) { pRoot = NULL; } else { pRoot = new BsTreeNode; pRoot->m_nvalue = dat; CreateBitree(pRoot->m_pLeft, arr); CreateBitree(pRoot->m_Right, arr); } }
void change(BsTreeNode * node,BsTreeNode * &pTail) { if (node) { change(node->m_pLeft, pTail); if (pTail) { pTail->m_Right = node; } node->m_pLeft = pTail; pTail = node; change(node->m_Right, pTail); } }
相关文章推荐
- [javaSE] 数据结构(AVL树基本概念)
- 数据结构之平衡树(Treap)
- KMP算法
- SDUT 3311 数据结构实验之串三:KMP应用
- 数据结构之堆(Heap)
- SDUT 2272 数据结构实验之串一:KMP简单应用
- SDUT 2125 数据结构实验之串二:字符串匹配
- SDUT 2135 数据结构实验之队列一:排队买饭
- 80道常见数据结构面试题及其解法(2)
- SDUT 3335 数据结构实验之栈八:栈的基本操作
- 80道常见数据结构面试题及其解法
- 数据结构——c语言描述 第二章(3) 双向链表
- 队列和栈简单实现
- 第12周 数据结构和算法 线性表-5 栈-栈完成进制转换及应用
- 数据结构与算法:图
- 第12周 数据结构和算法 线性表-5 栈-压入和弹出运算
- 复习(数据结构):复杂度
- 数据结构实验之图论八:欧拉回路
- 关于数据结构与算法的网站
- Java数据结构和算法——开篇