Linux C语言编程基础

二叉树实现
  1. 实现了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");
}
  1. project实现
    1. 首先是建立文件夹:
      Linux C_二叉树

形成project基本格式。
>
2. 完成后的project
Linux C_二叉树_02

GCC 的 ESC 和 ISO
  1. 如图所示:
    Linux C_#include_03
动态库与静态库
  1. 如图所示:
    1. 动态库
      Linux C_结点_04
  1. 静态库

Linux C_动态库_05

GDB断点
  1. 对如下程序进行调试

Linux C_结点_06

  1. 但是出现了未知错误,以后再查找,敬请期待
    Linux C_动态库_07
makefile实践
  1. 如图所示
    Linux C_#include_08