二叉树编程基础练习
#include "btree.h"
#include "linkqueue.h"
#include "linkstack.h"
btree_pnode create_btree1(void)
{
dataype_bt ch;
btree_pnode new;
scanf("%c",&ch);
if('#'==ch)
{
return NULL;
}
else
{
new=(btree_pnode)malloc(sizeof(btree_node));
if(NULL==new)
{
perror("malloc");
exit(-1);
}
new->data=ch;
new->lchild=create_btree1();
new->rchild=create_btree1();
}
return new;
}
void create_btree(btree_pnode *T)
{
dataype_bt ch;
scanf("%c",&ch);
if('#'==ch)
{
return ;
}
else{
(*T)=(btree_pnode)malloc(sizeof(btree_node));
if(NULL==(*T))
{ perror("malloc");
exit(-1);
}
(*T)->data=ch;
create_btree(&((*T)->lchild));
create_btree(&((*T)->rchild));
}
}
void pre_order(btree_pnode t)
{
if(t!=NULL)
{
printf("%c",t->data);
pre_order(t->lchild);
pre_order(t->rchild);
}
}
项目构建
文件目录树:
gcc相关练习
gcc的ESc和iso
静态库与动态库的调用练习
静态库制作
使用命令gcc src/.c -Iinclude -o lib/.o就可以生成对应.o并放在lib路径中
将所有.o合成一个静态库
ar -rc lib/libmyod.a lib/*.o
创建动态库
可以分为两步:
第一步:生成目标文件,此时要加编译器选项-fPIC。[ps:-fPIC是创建与地质无关的编译程序,是为了能够在多个应用程序间共享]
gcc -fPIC -c hello.c
第二步:生成动态库,此时要加链接器选项-shared。[ps:-shared是指定生成动态链接库]
gcc -shared -o libmyhello.so hello.o
以上两步也可以写成一条指令:
gcc -shared -fPCI -o libmyhello.so hello.c
gdb相关练习
行断点:break+行号
临时断点:tbreak+行号
函数断点:break+函数名
条件断点:break+行号+if+条件
- 其他步骤
开始运行:run
查看变量的值:disp 变量名
单步执行(进入函数):s
单步执行(不进入函数):n
跳出函数:finish
跳出循环:until