您的位置:

c语言单链表以及二叉树中创建时,编写函数,输入字符序列,建立二叉树的二叉链表

本文目录一览:

请问C语言如何创建二叉树????

创建二叉树的源程序如下:

#include cstdlib

#include stdio.h

typedef struct node

{ //树的结点    

int data;    

struct node* left;   

struct node* right;

} Node;

typedef struct 

{ //树根    

Node* root;

} Tree; 

void insert(Tree* tree, int value)//创建树

{    

Node* node=(Node*)malloc(sizeof(Node));//创建一个节点   

node-data = value;    

node-left = NULL;    

node-right = NULL;    

if (tree-root == NULL)//判断树是不是空树  

{     

tree-root = node;  

}   

else 

{//不是空树   

Node* temp = tree-root;//从树根开始    

while (temp != NULL)       

{             

if (value temp-data)//小于就进左儿子    

{              

if (temp-left == NULL)

{                 

temp-left = node;    

return;            

}             

else 

{//继续判断 

temp = temp-left;   

}          

}         

else {//否则进右儿子      

if (temp-right == NULL)     

{                   

temp-right = node; 

return;              

}               

else {//继续判断   

temp = temp-right;  

}         

}     

}  

}   

return;

void inorder(Node* node)//树的中序遍历

{   

if (node != NULL) 

{       

inorder(node-left);  

printf("%d ",node-data);  

inorder(node-right);   

}

int main()

{   

Tree tree; 

tree.root = NULL;//创建一个空树 

int n;    

scanf("%d",n);    

for (int i = 0; i n; i++)//输入n个数并创建这个树  

{      

int temp;  

scanf("%d",temp);   

insert(tree, temp);  

}    

inorder(tree.root);//中序遍历 

getchar(); 

getchar();  

return 0;

}

扩展资料:

简单二叉树定义范例:此树的顺序结构为:ABCDE

#include cstdlib

#include stdio.h

#include string

int main()

{

node* p = newnode;

node* p = head;

head = p;

string str;

cin str;

creat(p, str, 0)//默认根结点在str下标0的位置

return 0;

}

//p为树的根结点(已开辟动态内存),str为二叉树的顺序存储数组ABCD##E或其他顺序存储数组,r当前结点所在顺序存储数组位置

void creat(node* p, string str, int r)

{

p-data = str[r];

if (str[r * 2 + 1] == '#' || r * 2 + 1 str.size() - 1)p-lch = NULL;

else

{

p-lch = newnode;

creat(p-lch, str, r * 2 + 1);

}

if (str[r * 2 + 2] == '#' || r * 2 + 2 str.size() - 1)p-rch = NULL;

else

{

p-rch = newnode;

creat(p-rch, str, r * 2 + 2);

}

}

数据结构 c语言版二叉树(1) 建立一棵含有n个结点的二叉树,采用二叉链表存储;

#includestdio.h

#includestdlib.h

typedef struct node *tree_pointer;

struct node{

char ch;

tree_pointer left_child,right_child;

};

tree_pointer root=NULL;

tree_pointer create(tree_pointer ptr)

{

char ch;

scanf("%c",ch);

if(ch==' ')

ptr=NULL;

else{

ptr=(tree_pointer)malloc(sizeof(node));

ptr-ch=ch;

ptr-left_child=create(ptr-left_child);

ptr-right_child=create(ptr-right_child);

}

return ptr;

}

void preorder(tree_pointer ptr)

{

if(ptr){

printf("%c",ptr-ch);

preorder(ptr-left_child);

preorder(ptr-right_child);

}

}

void inorder(tree_pointer ptr)

{

if(ptr){

inorder(ptr-left_child);

printf("%c",ptr-ch);

inorder(ptr-right_child);

}

}

void postorder(tree_pointer ptr)

{

if(ptr){

postorder(ptr-left_child);

postorder(ptr-right_child);

printf("%c",ptr-ch);

}

}

void main()

{

printf("构建一个二叉树(结点数为n):\n");

root=create(root);

printf("前序遍历二叉树:\n");

preorder(root);

printf("\n");

printf("中序遍历二叉树:\n");

inorder(root);

printf("\n");

printf("后序遍历二叉树:\n");

postorder(root);

printf("\n");

}

如何用C语言用顺序表和链表分别建一个二叉树

#includestdio.h

typedef struct node

{

char data;

struct node *lchild;

struct node *rchild;

}BitTree;

BitTree *creat_bt(int n);

BitTree *p[10];

int main()

{

BitTree *h;

int n;

printf("请输入你节点数\n");

scanf("%d",n);

h=creat_bt(n);

return 0;

}

BitTree *creat_bt(int n)

{

BitTree *s,*t;

int j,i;

while(n--)

{

s=new(BitTree);

scanf("%d%c",i,s-data);

s-lchild=s-rchild=NULL;

p[i]=s;

if(i==1)

t=s;

else

{

j=i/2;

if(i%2==0)

p[j]-lchild=s;

else

p[j]-rchild=s;

}

}

return t;

}

这个是我用链表创建的二叉树

c语言单链表以及二叉树中创建时,编写函数,输入字符序列,建立

2022-11-29
用c语言将二叉树转换为双向链表,二叉树转化为二叉链表

2022-11-29
二叉树按层输出c语言,C语言二叉树怎么输入数据

2022-11-24
二叉树的前序遍历c语言,二叉树前序遍历c语言代码

2022-11-25
层次遍历构建二叉树c语言,c语言二叉树的创建与遍历

2023-01-06
二叉树的c语言程序求教,c语言创建二叉树代码

2023-01-06
c语言层序遍历创建二叉树,二叉树的建立与遍历完整代码C语言

2022-11-23
输出二叉树的层次遍历c语言,遍历二叉树C语言

2023-01-04
c语言二叉排序,c语言创建排序二叉树

2022-12-02
c语言八叉树,二叉树构造c语言实现

2022-11-26
如何在java中创建二叉排序树(java实现二叉排序树)

2022-11-12
c语言深度优先二叉树遍历,深度优先遍历类似于二叉树的层次遍历

本文目录一览: 1、急急急!求C语言的数据结构二叉树递归遍历程序! 2、C语言二叉树的遍历。 3、C语言数据结构“遍历二叉树” 4、二叉树的创建和遍历 急急急!求C语言的数据结构二叉树递归遍历程序!

2023-12-08
二叉树golang,二叉树的度

2022-11-28
遍历线索化二叉树java(遍历二叉树和线索二叉树)

2022-11-15
c语言求二叉树最大深度,c语言求二叉树高度

2022-11-25
二叉树java,二叉树java实现

2023-01-10
怎么用java画一棵二叉树,java创建一个二叉树

2022-11-21
二叉树java,二叉树java打印中根

2022-12-02
java二叉树测试(二叉查找树java)

2022-11-11
后序遍历二叉树的递归算法c语言,实现二叉树的后序遍历的非递归

2023-01-03