1.用数组表示线性表的优点是便于随机存取
2.数据的逻辑结构不是指数据的各数据项之间的逻辑关系而是数据元素间的逻辑关系
3.抽象数据类型中基本操作的定义与具体实现无关
4.与数据元素本身的形式、内容、相对位置、个数无关的是数据的逻辑结构。
5.数据元素是数据的基本单位,数据项是有独立含义的数据最小单位,数据结构概念包含的主要内容是数据的逻辑结构和数据的存储结构,数据的逻辑结构分为线性结构和非线性结构。
6.malloc()是重新分配一个空间,realloc()是在原有的基础上再加上或减少一段空间。
int *p = (int )malloc(20sizeof(int));
int *pp = (int )realloc(p, sizesizeof(int));
7.深度历遍
void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) )
{
//Vertex i;
Visited[V] = true;
Visit(V);
for(int i = 0; i < Graph->Nv ; i++)//Graph->Nv 确保改变顶点个数也可以通过
{
if(Graph->G[V][i] == 1&&!Visited[i])//==1确保同sample,但改变Visit函数定义时可以通过
{
DFS(Graph, i, Visit);
}
}
return;
}
循环单链表循环插入和删除
/* 请在这里填写答案 */
Status ListCreate_CL(LinkList &CL){
CL = (LinkList)malloc(sizeof(int));
LinkList rear = CL;
rear->next = NULL;
int n;
scanf("%d",&n);
for(int i = 0;i < n;i++){
LinkList p = (LinkList)malloc(sizeof(LNode));
int m;
scanf("%d",&m);
p->data = m;
rear->next = p;
rear = p;
}
rear->next = CL;
return OK;
}
void ListDelete_CL(LinkList &CL, ElemType min, ElemType max){
LinkList p = CL->next,q;
while(p->next != CL){
q = p->next;
if(q->data>min&&q->data<max)
{
p->next = q->next;
free(q);
}
else
p = p->next;
}
}