数据结构基本知识点new
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1、什么是数据结构
①数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
②数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
③4类基本结构:⑴集合;⑵线性(一个前驱,一个后继)结构;⑶树形结构;
⑷图状结构或网状结构。
2、数据结构的二元组表示:Data_Structure=(D,S)//D是数据元素的有限集,S是D上关系的有限集。
3、算法的5大特性:⑴有穷性;
4、衡量算法的标准:时间复杂度和空间复杂度
5、数据的逻辑结构分四类
6、数据结构写出逻辑结构,反之。
第二章
0、线性表的基本概念。
1、线性表的顺序存储的基本操作:Insert, E Is=n/2 Delete. E dl=(n-1)/2
2、线性表的顺序存储的特点:连续地址,随机查找。
3、线性表的链式存储的特点:地址不保证连续,顺序查找。
(1)重点1:结构类型P28
Typedef struct LNode{
ElemType data;
Struct LNode *next;
}LNode,*LinkList;
(2)重点2:基本方法
Status GetElem_L(LinkList L,int i,ElemType &e); Status ListInsert_L(LinkList &L,int i,ElemType e); Status ListDelete_L(LinkList &L,int i,ElemType &e); void CreateList_L(LinkList &L,int n);
void Print(LinkList L)
{ LinkList p=L->next;(有头结点)
if(!p) printf(“this link is empty!\n”);
else{ printf(“%d,”,p->data);
while(p->next)
{p=p->next; printf(“%d,”,p->data); } printf(“\n”);
}
}
void CountNodes(LinkList L,int &nd)
{ nd=0;//
LinkList p=L->next;(有头结点)
if(!p) printf(“this link is empty!\n”);
else{ nd++;//
while(p->next)
{p=p->next; nd++;}//
}
}
voidCountAve(LinkList L,int &av)
{ int n=0,s=0//
av=0;
LinkList p=L->next;(有头结点)
if(!p) printf(“this link is empty!\n”);
else{ s=s+p->data; n++;//
while(p->next)
{p=p->next;s=s+p->data; n++;}// av=s/n;
}
return av;//
}
void PrintMax(LinkList L,)
{ int max;
LinkList p=L->next;(有头结点)
if(!p) printf(“this link is empty!\n”);
else{ max=p->data;
while(p->next)
{p=p->next; if(p->data>max) max=p->data;}//
printf(“max=%d\n”,max);
}
}
void DeletaMaxNode(LinkList L,)
{ int max;
LinkList q,t;//q---记录p的前驱结点指针,t-----保存最大结点的前驱指针。
LinkList p=L->next;(有头结点)
q=L;//
if(!p) printf(“this link is empty!\n”);
else{ max=p->data;t=q;//
while(p->next)
{q=p; p=p->next; //
if(p->data>max) {max=p->data; t=q;}//
}
q=t->next; t->next=q->next; free(q);
}
}
(3)循环链表的特点:首尾特点
(4)链表为空的条件:分有头链表与无头链表。(5)分清头结点,开始结点、尾结点。
第三章栈和队列
1、栈和队列是端点受限操作的线性表。
2、栈的定义及特点:FILO
3、Push(&s,e) Pop(&s,&e)基本操作过程。
4、判定通过栈操作的序列正确否或可能性。
5、栈空或栈满的条件。
6、队列特性:FIFO
7、循环队列:为空的条件,为满的条件。
8、EnQueue(&Q,e)的操作
9、DeQueue(&Q,&e)的操作
第四章串
1、串的定义与表示
2、空串与空白串的区别
3、串的基本操作
4、什么是模式匹配
5、int Index(string S,string T,int pos);作用P79
6、统计子串的个数
第五章数组与广义表