C语言 二叉树顺序存储结构的先序遍历算法
生活随笔
收集整理的這篇文章主要介紹了
C语言 二叉树顺序存储结构的先序遍历算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include?<stdio.h>
#include?<stdlib.h>
#include?<string.h>#define?__MAX_LENGTH__?20typedef?struct?SqStack{//調用棧int?data[__MAX_LENGTH__];int?top;
}SqStack;typedef?struct?SqBiTree{//順序存儲二叉樹elemType?data[__MAX_LENGTH__];int?len;
}SqBiTree;//按先序遍歷一維數組作為存儲結構的二叉樹
int?traTree(SqBiTree?*t){SqStack?*stack?=?calloc(sizeof(SqStack),1);stack->top?=?0;//將棧制空;int?root;root?=?0;//指向根節點;while((stack->top)>-1){//當棧不為空時,進入循環while(root<__MAX_LENGTH__&&t->data[root]>='a'){//printf("%c,",t->data[root]);//訪問節點stack->data[stack->top]?=?root;//節點入棧stack->top?++;root?=?(root+1)?*?2-1;//檢查下一個左子樹;}if(stack->top?>-1){//棧非空訪問,遍歷右子樹;stack->top?--;root?=?(stack->data[stack->top]+1)*2;}}
}int?main(int?argc,?char?*argv[])
{SqBiTree?*p?=?calloc(sizeof(SqBiTree),1);strcpy(p->data,"abcdefghij");traTree(p);return?0;
}
轉載于:https://blog.51cto.com/yangzheng0809/1964688
總結
以上是生活随笔為你收集整理的C语言 二叉树顺序存储结构的先序遍历算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker探索-docker安装运行t
- 下一篇: birt报表的行隐藏和列隐藏以及分组显示