一个链表,一般写两个类,一个节点类,一个链表类。节点类作为链表的一个。。。嗯 。。。部件(基本可以这么说吧)。
项目地址:github
1.一些关于c++的语法问题
星号:例如 *node。星号的作用是标示这是一个指针(是一个引用类型的变量),而不是基本类型。
&号就是一个别名,比如:
int a=5; a=&b; //这玩意输出结果,a、b值相同,内存地址也相同,就是同一个东西
->符号 :这玩意类似java中的点号(.),就是调用某个类中的方法。
Node *tem=first->next; //这种的是赋值
tem=tem->next; //但是这种类似自加大的形式,就是将指针往后推一位
2.关于堆和栈
栈是固定大小的,在编译时候已经确定大小,储存函数有关调用执行的信息、储存局部变量。
堆的大小是不固定的,是内存中的空闲空间,new出来的东西就在堆中。
int a=new int; //int a是在栈中,new int实在堆中,二者相互对应
栈的用途:
- 检查括号是否成对出现
- 文本的删除操作
- 前、后缀表达式的计算
- 中缀表达式转换为前、后缀表达式
二叉树的术语,占个地方
- 完美二叉树
- 完全二叉树
- 平衡二叉树
- 搜索二叉树