Linux C语言编程基础
二叉树实现
- 实现了2.12中二叉树,实现了二叉树的建立和层序输出,代码如下
#include <stdio.h>
#include<stdlib.h>
#define MAXLEN 256
/*二叉树结构建立*/
typedef struct BinTree
{
int value;
struct BinTree * Lchild;
struct BinTree * Rchild;
}*BinTree , TreeNode;
/*存数队列*/
typedef struct Queue
{
int tool[MAXLEN];
int rear;
int front;
}Queue;
void visit(BinTree root)
{
printf("%d" , root -> value);
}
/*建立二叉树*/
BinTree creatBT(BinTree root)
{
int a;
printf("输入结点数据\n");
scanf("%d",&a);
if(a == 0)
{
root = NULL;
}else{
root = (BinTree)malloc(sizeof(TreeNode));
root -> value = a ;
if (!root)
{
printf("ERROR\n");
return 0;
}
root -> Lchild = creatBT(root -> Lchild);
root -> Rchild = creatBT(root -> Rchild);
}
return root;
}
/*层序遍历*/
void level_gothrough(BinTree root)
{
BinTree queue[MAXLEN];
int rear = 0 , front = 0;
BinTree p = root;
if(p != NULL )/*树不为空*/
{
queue[rear] = p;
rear = rear+1;
while(rear != front)
{
p = queue[front];
visit(queue[front]);
front = front+1;
/*左子结点入队*/
if (p -> Lchild != NULL)
{
queue[rear]=p->Lchild;
rear++;
}else
{
printf("#");
}
/*右子结点入队*/
if (p -> Rchild != NULL)
{
queue[rear]=p->Rchild;
rear++;
}else
{
printf("#");
}
}
}
}
/*main函数*/
int main()
{
BinTree root = NULL;
printf("输入0表示空\n");
root = creatBT(root);
printf("层序遍历结果:\n");
level_gothrough(root);
printf("\n");
}
- project实现
- 首先是建立文件夹:
- 首先是建立文件夹:
形成project基本格式。
>
2. 完成后的project
GCC 的 ESC 和 ISO
- 如图所示:
动态库与静态库
- 如图所示:
- 动态库
- 动态库
- 静态库
GDB断点
- 对如下程序进行调试
- 但是出现了未知错误,以后再查找,敬请期待
makefile实践
- 如图所示