第一章
1、什么是数据结构
①数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
②数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
③4类基本结构:⑴集合;⑵线性(一个前驱,一个后继)结构;⑶树形结构;⑷图状结构或网状结构。
2、数据结构的二元组表示:Data_Structure=(D,S)//D是数据元素的有限集,S是D上关系的有限集。
3、算法的5大特性:⑴有穷性;
4、衡量算法的标准:时间复杂度和空间复杂度
5、数据的逻辑结构分四类
6、数据结构写出逻辑结构,反之。
第二章
0、线性表的基本概念。
1、线性表的顺序存储的基本操作:Insert, EIs=n/2 Delete. Edl=(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”);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论