拓扑排序是一个有向无环图G=(V,E)中所有结点的一种线性排序。
(#include<bits/stdc++.h> 包含C++的所有头文件)
vector(封装数组)
初始化:
vector<int>a(10);
vector<int>a(10,1);
vector<int>a(b);
int a[5]={0,1,2,3,4};
vector<int>b(a,a+5);
vector对象的常用内置函数 a.size():返回a在内存中总共可以容纳的元素个数。 a.push_back(2):在a的第一个元素位置插入数值2
set(封装二叉树)
在set中每个元素的值都是唯一的,而且系统能根据数据的值自动排序。(注意其中的元素不能直接被改变)
a.count:count函数用于计数容器中目标元素的个数 insert(key)函数:将key插入到set中
queue(封装队列)
push函数:在队列尾部插入一个元素 empty函数:判断队列是否为空,若为空则返回true front函数:返回队列中第一个进入的元素,(就是第一个元素) pop函数:将队列中最靠前位置的元素去掉,是无返回值的void函数
memset函数
memset()通常为新申请的内存进行初始化工作,它直接操作内存空间 它的原型是include<string.h>
void *memset(void *s,int c,unsigned long n);
memset()作用是在一段内存块中填充某个给定的值
memecpy函数
声明在string.h中
void *memcpy(void *destin,void *source,unsigned n);
以source指向的地址为起点,将连续的n个字节数据,复制到以destin指向的地址为起点的内存中。 第一个是目标地址,第二个是源地址,第三个是数据长度。 数据长度的单位是字节 该函数有一个返回值,类型是void*,是一个指向destin的指针。
链表
链表:将结构体变量通过指针连接在一起
结构:
struct Node{
int data;
struct Node* next;
};
动态创建一个链表
- 创建链表(创建一个表头表示整个链表)
- 创建结点
- 插入结点
- 删除节点
- 打印遍历链表
struct Node{
int data;
struct Node* next;
};
struct Node* creatlist()
{
struct Node* headNode =(struct Node*)malloc(siezof(struct Node));
headNode->next=NULL;
return headNode;
}
struct Node* creatNode(int data)
{
struct Node* newNode=(struct Node*)malloc(sizeof(struct Node));
newNode->data=data;
newNode->next=NULL;
return newNode;
|