1.使用容器vector:头文件:vector、iostream、algoritm
(1)定义vector<int>v1(无初值);vector<int>v2(3,0)(三个元素初值为0)
(2)实用迭代器的方式将容器中的值输出来
for(vector<int>::iterator begin i = v2.begin();i!=v2.end();i++)
{
cout << *i << endl;
}
(3)插入
eg:v2.insert(v2.begin(),3)(在开头插入3);v2.pushback(0)(在尾部插入0);v2.insert(v2.end(),v2.begin(),v2.end())(连接两个v2)
(4)删除元素
eg:v2.erase(v2.begin())(删除开头的指定元素);v2.erase(v2.begin(),v2.end()) (删除整体的元素)
(5)访问元素
eg: cout << v2[0] (访问第一个元素);或者cout <<v2.at(0)(访问第一个元素)
(6)分配assign
eg:v2.assign(3,4)(分配3个4元素);v3.assign(v2.begin(),v2.end())(分配v2的元素到v3中)
(7)二维数组
vector<vector<int>> v2;vector<int> v2_0<3,4>;vector<int> v2_1<3,6>;v2.push_back(v2_0);v2.push_back(v2_1);//这个时候遍历就可以不用迭代器了,直接 for(int i = 0;i<v9.size();i++)就可以了
2.queue:头文件:queue、iostream
(1)定义:queue<int>ql;
(2)ql.pop():弹出队列的第一个元素;ql.push(x),将x 放入ql的末端;ql.front():ql的第一个元素;ql.back():ql的最后一个元素。
3.array(数组):头文件:array、iostream
(1)定义:array<int,10> myarray;
(2)获取数组中元素的方式
如果是直接获取第n个,可以用myarray[3];如果是获取所有的,则可以利用遍历的方式
for(auto it = myarray.begin();it != myarray.end(); it++)
4.树学习
(1)定义:树是一个由n(n>=1)的有限个节点组成的有层次关系的集合。
(2)性质:a.结点、父结点、子结点、根结点。每个结点有0个或者多个子节点,其中非根节点有一个父结点。
b.双亲、孩子、兄弟。如果一个结点有子结点,则该结点为子结点的双亲,子结点为双亲结点的孩子;其中有相同双亲结点的子结点互为兄弟;
c.结点的度:结点的子树的个数;叶子结点:度为0的结点;树的度:树中结点最大的度;层次:跟结点的层次为1,其他结点的层次为双亲结点的层次加1;树的高度:树中结点最大的层次;
(3)二叉树是每个结点最多有两个子树的树结构;二叉树可以是空集;根可以有空的左、右子树;也可以左右子树都为空。
a.二叉树种类:满二叉树、完全二叉树、二叉查找树。其中满二叉树是除了最下面一层结点外,每个结点都有两个左右子树;完全二叉树则是只有最下面两层的度可以小于2,且最下层的结点集中在靠左的若干位置;二叉查找树则是对于某结点的值,它的左子树的值比该值小,右子树的值比该值大。
b.二叉树性质:第i层结点数目最多有;包含n个结点的二叉树的高度至少为;任意一颗二叉树,叶子结点的个数为n0,度为2的结点个数为n2,则存在n0=n2+1。(可以这样推导,不妨再设总结点数为n,度为1的结点个数为n1。则显然 n=n0+n1+n2,再根据层次关系 n= 0*n0+1*n1+2*n2+1 =n1+2n2+1。两式联立,可以推出)
(4)路漫漫其修远兮,树的种类还多着呢,只有积硅步成千里了
下面学习下平衡树。对于二叉搜索树,其期望高度为,这样也决定了它的时间复杂度为。但是在某些极端的情况下,二叉搜索树会变成线性的,类似于链表的形式,这样时间复杂度也退化成线性的了,0(n)。对于这种情况可以通过随机建立二叉搜索树的形式来避免,但是在删除操作的过程中,我们使用了将删除点的后继代替了它本身,导致会出现左边多右边少的情况,使得树的平衡性不好。因此提出了平衡树,它可以是棵空树或者子树间的高度差绝对值不能超过1。这样也使得时间复杂度也良好的稳定在。对于最小二叉平衡树的还存在节点公式为:F(n) = F(n-1)+F(n-2)+1(左子树节点+右子树节点+根节点)
参考文献:https://blog.csdn.net/u011939755/article/details/80572846
https://blog.csdn.net/Leader_wang/article/details/82959362
https://blog.csdn.net/xiaoquantouer/article/details/65631708
http://www.cnblogs.com/maybe2030/p/4732377.html#_label2
https://www.cnblogs.com/polly333/category/720001.html
未完待续。。。。。