




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论基本概念和术语数据、数据元素、数据项数据:凡能被计算机存储、加工的对象,通称为数据。数据元素:是数据的基本单位,普通含有完整、拟定的实际意义。数据项:是数据不可分割的最小单位。注意:数据、数据元素、数据项是数据组织的三个层次。如:(80,90,100,110,120)、表格数据的逻辑构造逻辑构造:数据元素之间的“邻接”关系四种逻辑构造线性构造:数据元素之间存在“一对一”的关系树形构造:数据元素之间存在“一对多”的关系图状构造:数据元素之间存在“多对多”的关系集合:数据元素之间没有邻接关系数据的存储构造存储构造:数据元素在计算机内的寄存方式两种存储构造次序存储:将数据元素依次寄存到一组持续的存储单元中。链式存储:将数据元素寄存到非持续的存储单元中,并运用指针将各个存储单元链接起来。数据的基本操作加工型操作:变化数据元素的个数或数据元素的内容引用型操作:数据元素的个数或数据元素的内容均未变化数据构造1.含义:涉及三方面的内容:逻辑构造:反映数据元素之间的邻接”关系存储构造:反映数据元素在计算机内的寄存方式数据的操作2.数据按构造分,可分为4类,每一类对应着一种逻辑构造数据逻辑构造线性表线性构造树树型构造图图状构造查找表集合1.3算法描述算法:解决问题的办法和环节。算法的描述办法框图非形式语言:如中文类C语言程序C语言程序1.4算法分析对同一问题,能够设计多个不同的算法,但必有一种算法的时间效率最高。估算一种算法的运行时间=1\*GB3①拟定问题的输入规模n。=2\*GB3②根据问题的特点,选择一种操作作为“原则操作”。(普通以条件判断或赋值语句为原则操作)=3\*GB3③拟定在给定输入下共执行多少次原则操作,从而算出运行时间T。算法的时间复杂度对算法的运行时间T(n),无视全部的常数、低次项,无视最高项的系数,称为算法的时间复杂度,以O表达。运行时间时间复杂度T(n)=c常数阶O(1)T(n)=cn线性阶O(n)T(n)=cn2平方阶O(n2)指数阶O()对数阶O()指针和构造一、什么是指针1.存储单元的地址每一种存储单元由一种或多个字节构成,存储单元中第一种字节的编号称为存储单元的地址。2.什么叫指针?指针总是指向某个变量。指针的值是所指向变量的地址,指针的类型是所指向变量的类型。二、指针变量1.指针变量的定义类型*指针变量名;例:int*p;解释:定义一种指针p,它只能指向int型变量。2.两个运算符&:取地址运算符,例&i*:指针运算符,例*p例:int*p,i=3;p=&i;printf("%d,%d\n",i,*p);阐明:①&和*互为逆运算,即:&*p=p,*&i=i②定义指针变量时,指针变量名前面的“*”不是指针运算符。=3\*GB3③指针能够与整数进行加、减运算。指针±n=指针的原值±sizeof(指针的类型)×n=4\*GB3④同类型的两个指针能够互相赋值。三、指针与数组1.数组名代表该数组的首地址,例a==&a[0]2.设inta[6],则a[i],*(a+i)是等价的&a[i],a+i是等价的3.表达数组元素的办法下标法:例a[i]指针法:例*(a+i)4.设指针p指向数组a的某一种元素,则p++:使p指向数组的下一种元素;四、构造1.定义构造类型struct构造名{组员定义列表}例:structperson{intno;charname[6];};2.定义构造变量structpersonx;引用构造变量的组员构造变量名.组员名构造变量的初始化构造指针例:已知structpersonx,*p;p=&x;则表达x的no组员有三种形式:x.no,p->no,(*p).no线性表2.1线性表的定义1.线性表的表达形式:
L=(a1,a2,a3,…,an)2.线性表的基本操作每种操作都采用一种函数来完毕,这些函数是自定义函数,使用之前必须先定义。2.2线性表的次序存储构造一、次序表的类型定义次序表实际是一种构造变量,涉及两个域:datas:寄存线性表的元素,last:寄存线性表的长度。typedefstruct{类型datas[maxsize];intlast;}sequenlist;sequenlistL;二、为线性表L=('a','b','c','d',……)创立一种次序表,规定L的第1个元素存入数组的1号元素中。typedefstruct{chardatas[20];intlast;}sequenlist;voidmain(){sequenlistL;charch;inti=1;ch=getchar();while(ch!='\n'){L.datas[i]=ch;i++; ch=getchar();}L.last=i-1;for(i=1;i<=L.last;i++) printf("%4c",L.datas[i]);printf("\n");}三、基本操作在次序表上的实现1.insert(a,x,i):将元素x插入到次序表a的第i号元素之前2.delete(a,i):删除次序表a的第i号元素第3章链式存储构造3.1线性表的链式存储构造一、次序表的优缺点优点:空间运用率高,能够随机读取表中任一元素。缺点:插入、删除操作要移动大量的数据,时间性能差。二、单链表1.单链表的构成每个单链表由多个结点构成,每个结点包含两个域:数据域data:寄存线性表的元素指针域next:寄存下一种结点的地址2.单链表的类型定义typedefstructnode{类型data;structnode*next;}linklist;linklist*head;阐明:不带头结点的单链表为空的条件:head==null带头结点的单链表为空的条件:head->next==null3.单链表的建立(尾插入法)例:为L=('a','b','c','d',……)创立单链表。#include"malloc.h"#include"stdio.h"typedefstructnode{chardata;structnode*next;}linklist;voidmain(){charch;//定义三根指针,head指向头结点,t指向新产生的结点,last指向最后的结点linklist*head,*t,*last;t=malloc(sizeof(linklist));t->next=NULL;head=t;last=t;ch=getchar();while(ch!='\n'){t=malloc(sizeof(linklist));t->data=ch; t->next=NULL; last->next=t; last=t; ch=getchar();}}4.单链表的插入需设立两支指针:p、t。p:指向待插入结点的前一种结点t:指向新产生的结点5.单链表的删除需设立两支指针:p、t。p:指向待删除结点的前一种结点t:指向待删除结点三、其它链表单链表单向循环链表(循环链表)双向循环链表(双向链表)循环链表最后一种结点的指针域不是NULL,而是指向头结点。双链表每个结点包含三个域:一种数据域和两个指针域。双链表的特点是找结点的前趋和后继都很容易。第4章栈和队列4.1栈一、栈的定义1.基本概念栈顶、栈底、进栈、出栈、空栈2.栈的表达形式S=(a1,a2,a3,…,an)按a1,a2,a3,…,an次序进栈,但按an,…,a3,a2,a1次序出栈。a1称为栈底元素,an称为栈顶元素。栈又称后进先出线性表(LIFO)表。二、栈的次序存储构造1.次序栈的类型定义次序栈事实上是一种构造变量,涉及两个域:data:寄存栈中元素,top:寄存栈顶元素所在单元的编号。typedefstruct{类型data[maxsize];inttop;}seqstack;seqstacks;栈空条件:s.top=0;栈满条件:s.top=maxsize-12.为S=('a','b','c','d',……)创立一种次序栈,规定S的第1个元素存入数组的1号元素中。typedefstruct{chardata[20];inttop;}seqstack;voidmain(){seqstacks;charch;inti=1;ch=getchar();while(ch!='\n'){s.data[i]=ch;i++; ch=getchar();}s.top=i-1;for(i=1;i<=S.top;i++) printf("%-4c",s.data[i]);printf("\n");}三、栈的链式存储构造1.链栈的类型定义typedefstructnode{类型data;structnode*next;}linkstack;linkstack*top;注意:=1\*GB3①链栈总是以栈顶指针top开头,top用于标记整个链栈。=2\*GB3②链栈只会出现栈空状况,栈空条件为:top==NULL。2.链栈的建立(头插入法)例:为S=('a','b','c','d',……)创立一种链栈。#include"malloc.h"#include"stdio.h"typedefstructnode{chardata;structnode*next;}linkstack;voidmain(){linkstack*top,*t;charch;top=NULL;ch=getchar();while(ch!='\n'){t=malloc(sizeof(linkstack));t->data=ch; t->next=top; top=t;ch=getchar();}printf("出栈次序为:\n");while(top->next!=NULL){printf("%-4c",top->data);top=top->next;}printf("\n");}4.2队列一、队列的定义1.基本概念队头、队尾、空队2.队列的表达形式:Q=(a1,a2,a3,…,an)按a1,a2,a3,…,an次序进队,仍按a1,a2,a3,…,an次序出队。队列又称先进先出线性表(FIFO表)二、队列的次序存储构造1.次序队的类型定义次序队事实上是一种构造变量,涉及三个域:data:寄存队列的元素;front:寄存队头元素所在单元的前一种单元的编号;rear:寄存队尾元素所在单元的编号。typedefstruct{类型data[maxsize];intfront,rear;}seqqueue;seqqueueq;2.次序队的建立例:为Q=('a','b','c','d',……)创立一种次序队。typedefstruct{chardata[20];intfront,rear;}seqqueue;voidmain(){seqqueueq;charch;inti=0;ch=getchar();while(ch!='\n'){q.data[i]=ch;i++; ch=getchar();}q.front=-1;q.rear=i-1;//输出队列元素for(i=0;i<=q.rear;i++) printf("%-4c",q.data[i]);printf("\n");}次序队的队空、队满=1\*GB3①队空条件:q.front=q.rear=2\*GB3②队满条件:q.rear=maxsize-1队真满:q.front=-1;q.rear=maxsize-1队假满:q.front≠-1;q.rear=maxsize-14.次序队的插入、删除操作=1\*GB3①插入新元素:rear后移而front不变q.rear=q.rear+1;q.data[q.rear]=x;=2\*GB3②删除元素:front后移而rear不变q.front=q.front+1;三、循环队1.为充足运用存储空间,克服“假满”,能够把数组看作首尾相接的圆环,形成“循环队”。2.循环队的性质=1\*GB3①存储单元的编号从0开始,按顺时针方向,编号逐步增大,最后一种存储单元的编号为maxsize-1。=2\*GB3②在循环队中,当q.rear=maxsize-1时,只要数组有两个以上的存储单元为空,就能够把新元素插入到空单元中。=3\*GB3③当队列中元素的个数为maxsize-1时,就认为队满。3.循环队的插入、删除操作=1\*GB3①插入新元素:rear顺时针移动而front不变q.rear=(q.rear+1)%maxsize;q.data[q.rear]=x;=2\*GB3②删除元素:front顺时针移动而rear不变q.front=(q.front+1)%maxsize;4.循环队的队空、队满队空条件:q.front=q.rear队满条件:(q.rear+1)%maxsize=q.front四、队列的链式存储构造1.链队的类型定义=1\*GB3①链队是一种含有队头指针front和队尾指针rear的单链表;②front指向队头结点的前一种结点,rear指向队尾结点;=3\*GB3③链队由包含front和rear的构造变量lq标记。typedefstructnode_st{类型data;structnode_st*next;}node;typedefstruct{node*front;node*rear;}linkqueue; linkqueuelq;2.链队的建立(尾插入法)例:为Q=('a','b','c','d',……)创立一种链队。#include"malloc.h"#include"stdio.h"typedefstructnode_st{chardata;structnode_st*next;}node;typedefstruct{node*front;node*rear;}linkqueue; voidmain(){charch;linkqueuelq;node*p;p=malloc(sizeof(node));p->next=NULL;lq.front=p;lq.rear=p;ch=getchar();while(ch!='\n'){p=malloc(sizeof(node));p->data=ch; p->next=NULL; lq.rear->next=p; lq.rear=p; ch=getchar();}//输出队列中的元素p=lq.front->next;while(p!=NULL){printf("%-4c",p->data);p=p->next;}printf("\n");}3.链队的队空条件lq.front=lq.rear各式链式存储构造比较表有无头结点用何指针标记创立方法链表有头指针head尾插入法链栈无栈顶指针top头插入法链队有由包含front和rear的构造变量lq标记。尾插入法第6章树和二叉树6.1树的定义和基本操作一、树型构造和线性构造树型构造:每个结点能够有多个直接后继线性构造:每个结点只有一种直接后继二、树的定义树是n(n≥0)个结点的有限集合,任意一棵非空树满足:=1\*GB3①有且只有一种根结点;=2\*GB3②其它结点被分成若干个互不相交的集合,每个集合又是一棵树。三、树的特点=1\*GB3①除根结点外,每个结点有且只有一种直接前趋;=2\*GB3②除最底层的结点外,每个结点能够有多个直接后继;=3\*GB3③若某棵树有多个结点,则每个结点能够看作根结点,要么是整棵树的根结点,要么是某棵子树的根结点。四、基本术语=1\*GB3①结点的度、树的度=2\*GB3②叶子结点、分支结点度为0的结点称为叶子结点;度不不大于0的结点称为分支结点。=3\*GB3③孩子结点、双亲结点、兄弟结点含有同一双亲的结点互为兄弟=4\*GB3④结点的子孙、结点的祖先=5\*GB3⑤结点的层数、树的高度结点的层数:从树根开始算起,根的层数为1;树的高度:树中全部结点层数的最大值。6.2二叉树一、二叉树的定义:参考P73二、二叉树的性质(1)二叉树的第i层上最多有个结点。(2)深度为k的二叉树最多有个结点。(3)满二叉树:除最底层的结点外,其它结点的度均为2的二叉树。(4)完全二叉树:如果对一棵满二叉树的最底层从最右边开始,持续删去若干个结点,就得到完全二叉树。(5)对一棵完全二叉树的结点进行编号,则对编号为i的结点,其左孩子的编号为2i,右孩子的编号为2i+1,双亲结点的编号为三、二叉树的存储构造1.次序存储构造:◆先将二叉树的结点依次编号,再将结点存入一维数组中,数组元素的序号对应结点的编号。◆对二叉树的结点进行编号,编号原则是:=1\*GB3①根结点的编号为1。=2\*GB3②对于编号为i的结点,其左孩子的编号为2i,右孩子的编号为2i+1。满二叉树、完全二叉树普通采用次序存储构造,普通二叉树则采用链式存储构造。2.链式存储构造:=1\*GB3①二叉链表:每个结点涉及三个域:数据域data,左指针域lchild,右指针域rchild=2\*GB3②对二叉树的访问只能从根指针root开始,二叉树为空的条件:root=NULL。四、二叉树的遍历1.什么叫二叉树的遍历?按照一定规律访问二叉树的全部结点,使得每个结点均被访问一次且仅被访问一次。2.二叉树由三部分构成:根结点、左子树、右子树3.三种遍历次序=1\*GB3①先根遍历:根结点、左子树、右子树=2\*GB3②中根遍历:左子树、根结点、右子树=3\*GB3③后根遍历:左子树、右子树、根结点6.3树和森林一、对树中各结点编号从根结点开始,按层依次编号,且根结点的编号为0。二、树的存储构造双亲链表孩子链表孩子兄弟链表1.双亲链表(1)每个结点包含两个域名:数据域:寄存该结点的数据元素指针域:寄存该结点之双亲的编号(2)将全部结点组织成一维数组,并以各结点的编号作为数组元素的序号。2.孩子链表(1)为每个结点建立一种“孩子链表”。(2)结点x的孩子链表是一种带头结点的单链表,用于存储该结点的全部孩子的编号。(3)将全部头结点组织成一维数组。3.孩子兄弟链表(1)每个结点含有三个域:数据域:寄存该结点的数据元素孩子域:用于指向该结点的第一种孩子兄弟域:用于指向该结点的第一种兄弟(2)二叉树的二叉链表与树的孩子兄弟链表在组织构造完全相似。二叉链表孩子兄弟链表数据域数据域左指针域孩子域右指针域兄弟域三、树与二叉树的转换1.树转换为二叉树=1\*GB3①将树转换为二叉树,只要将树中各结点的第一种孩子看作左孩子,第一种兄弟看作右孩子即可。=2\*GB3②任一棵树对应的二叉树的右子树必空。2.森林转换为二叉树=1\*GB3①将每棵树先转换为二叉树B1,B2,…,Bn=2\*GB3②以B1为基准,将B2作为B1根结点的右子树,将B3作为B2根结点的右子树,…3.二叉树转换为森林=1\*GB3①将二叉树根结点的右子树撤去,得到多棵二叉树B1,B2,…,Bn=2\*GB3②将二叉树分别转换为树T1,T2,…,Tn。四、树的遍历先根遍历:根结点、各棵子树后根遍历:各棵子树、根结点层次遍历6.4哈夫曼树和鉴定树一、基本术语1.叶子结点的途径长度:从根结点到某个叶子结点所通过的分支数。2.树的途径长度:树中各叶子结点的途径长度之和。3.叶子结点的权:各叶子结点出现的概率。4.带权途径长度(WPL)各个叶子结点的权wi与对应的途径长度li乘积之和,称为树的带权途径长度。二、哈夫曼树1.什么叫哈夫曼树?带权途径长度WPL最小的二叉树,称为哈夫曼树。特点:=1\*GB3①普通地说,权值越大的叶子结点离根越近。=2\*GB3②哈夫曼树的时间性能最佳,是最优的二叉树。=3\*GB3③哈夫曼树中各结点的度只能是0或2。=4\*GB3④含有n个结点的哈夫曼树共有2n-1个结点。2.如何构造一棵哈夫曼树?(参考P88)3.哈夫曼编码对一棵哈夫曼树商定:指向左孩子的分支表达为0,指向右孩子的分支表达为1。取从根到叶子结点一路上的“0”或“1”构成的序列,称为叶子结点的三、分类和鉴定树1.用于描述分类问题的二叉树称为鉴定树。鉴定树的每个分支结点对应一种判断,每个叶子结点对应一种分类成果。2.一种分类问题对应着若干棵鉴定树,其中必有一棵鉴定树的WPL最小,WPL又称平均比较次数。3.一棵鉴定树对应着一种算法,哈夫曼树对应的算法的时间性能最佳。4.如何对一种分类问题写最优的算法?①对分类成果画哈夫曼树;②根据哈夫曼树写算法;第7章图7.1图的定义和术语一、图的定义图G由顶点集V和边集E构成,记为G=(V,E)。=1\*GB3①最简朴的图只有一种顶点;=2\*GB3②每条边由其连接的两个顶点表达:例:无向边(v1,v2);有向边<v1,v2>,<v2,v1>二、术语1.邻接点若顶点vi,vj存在一条边,则vi,vj互为邻接点。在有向边<vi,vj>中,称vi为起点,vj为终点。2.顶点的入边,出边若存在一条有向边<vi,vj>,则称它为vi的出边,vj的入边。3.顶点的入度,出度=1\*GB3①顶点的度:与顶点v有关联的边数,记为D(v);=2\*GB3②顶点的入度,出度:在有向图中,顶点v的入边的数目,称为入度,记为ID(v);顶点v的出边的数目,称为出度,记为OD(v);D(v)=ID(v)+OD(v)4.无向完全图,有向完全图无向完全图:任意两个顶点之间都存在一条边的无向图;有向完全图:任意两个顶点之间都存在方向相反的两条边的有向图;子图设有两个图G=(V,E)和G′=(V′,E′),若V′是V的子集,E′是E的子集,则G′是G的子图。连通图和连通分量连通:在无向图中,若两个顶点有途径,则称两顶点是连通的;连通图:任意两个顶点都连通的无向图;连通分量:无向图中的极大连通子图。强连通图和强连通分量强连通:在有向图中,若vi到vj,vj到vi都有途径,则称vi,vj是强连通的;强连通图:任意两个顶点都强连通的有向图;强连通分量:有向图中的极大连通子图。8.带权图:又称网带权有向图(有向网)带权无向图(无向网)7.2图的存储构造一、邻接矩阵1.邻接矩阵的构建=1\*GB3①将各个顶点排成一行和一列,形成矩阵。=2\*GB3②若行、列顶点之间存在一条边,则对应元素记1,否则,对应元素记0。2.邻接矩阵的特点无向图的邻接矩阵是对称的,有向图的邻接矩阵普通不对称。3.用邻接矩阵表达加权图只要把1元素换成对应边的权值,0元素换成∞即可。邻接矩阵的用途便于查找每个顶点的度、入度、出度。无向图:每个顶点的度等于该顶点对应的行或列中1元素的个数。有向图:每个顶点的出度等于该顶点对应行中1元素的个数,入度等于对应列中1元素的个数。二、邻接链表树的孩子链表、图的邻接链表组织构造相似。1.邻接链表的构建=1\*GB3①为每个顶点建立一种邻接链表,一种图有几个顶点,就有几个邻接链表。=2\*GB3②顶点x的邻接链表是一种带头结点的单链表,用于存储与x相邻接的顶点序号。=3\*GB3③将全部头结点组织成一维数组。2.邻接链表的用途便于求顶点的度、出度。无向图:每个顶点的度等于它的邻接链表中表结点的个数。有向图:每个顶点的出度等于它的邻接链表中表结点的个数。3.如何求顶点的入度?构造一种逆邻接链表,即顶点x的逆邻接链表存储的是与x的入边有关联的顶点序号。注:一种图的邻接矩阵是唯一的,但邻接表普通不唯一。7.3图的遍历1.树的遍历先根遍历:根结点、各棵子树后根遍历:各棵子树、根结点层次遍历2.图的遍历:适应于无向图,也适应于有向图。深度优先搜索遍历:类似树的先根遍历。广度优先搜索遍历:类似树的层次遍历3.深度优先搜索遍历:首先访问出发点Vi,然后任选一种Vi的未访问过的邻接点Vj,以Vj为新的出发点继续进行深度优先搜索。深度优先搜索遍历、广度优先搜索遍历得到的顶点序列不唯一。7.4图的应用一、最小生成树1.什么叫生成树?从n个顶点的连通图G中,取它的全部顶点和n-1条边构成子图G′,如果这些边刚好将G′的全部顶点连通但又不形成回路,则称子图G′是G的一棵生成树。注意:=1\*GB3①一种连通图能够有多棵生成树。=2\*GB3②生成树是边数极少的连通子图。=3\*GB3③连通分量:指极大连通子图。=4\*GB3④根据图的宽度优先遍历或深度优先遍历可构造生成树。2.最小生成树①生成树的权:各条边权值之和权值最小的生成树,称为最小生成树。=2\*GB3②带权无向图才可构造最小生成树。求造价最低的通讯网问题,实际是求最小生成树问题。3.构造最小生成树的算法:Prim(普里姆)算法二、拓扑排序1.拓扑序列在有向图中,若不存在回路,则全部顶点可排成一种线性序列,方便列出各顶点的前后关系,称此序列为拓扑序列。2.拓扑排序:实现有向图的一种拓扑序列的过程。任何一种有向无环图,其全部顶点能够排成一种拓扑序列,且其拓扑序列不唯一。若图中入度为0的顶点和出度为0的顶点都是唯一的,则其拓扑序列是唯一的。3.构成有向图拓扑序列的过程=1\*GB3①从图中选择一种入度为0的顶点,输出该顶点。=2\*GB3②从图中删除该顶点及其有关联的全部边。=3\*GB3③重复执行1,2,直到找不到入度为0的顶点。三、最短途径1.最短途径问题=1\*GB3①带权有向图才存在最短途径问题。=2\*GB3②图的途径长度:一条途径上各条边的权值之和。2.求一种源点到其它各个顶点的最短途径:Dijkstra迪杰斯特拉)算法从源点到其它各个顶点的最短途径中,先求最短的一条,再求次短的一条,以此次序,最后求最长的一条。3.Dijkstra算法描述=1\*GB3①假设S为顶点集合,初值为源点v0。=2\*GB3②首先从v0出发的全部边中找出权值最小的边的终点加入到S中。=3\*GB3③下一条最短途径是终点不在S中,中间只通过S中的顶点且途径长度最短,找到后将终点加入到S中。=4\*GB3④重复执行(3),直到全部顶点都加入到S中。例:根据P115图7.17,求顶点V1到其它各顶点的最短途径。终点V2V3V4V5集合S第1次10∞30100{V1,V2}第2次106030100{V1,V2,V4}第3次10503090{V1,V2,V4,V3}第4次10503060{V1,V2,V4,V3,V5}V1到各顶点的最短途径是:V1→V2:(V1,V2)V1→V4:(V1,V4)V1→V3:(V1,V4,V3)V1→V5:(V1,V4,V3,V5)第8章查找8.1基本概念一、多个数据的逻辑构造数据逻辑构造特点线性表线性构造数据元素之间存在着一对一的逻辑关系。树树型构造数据元素之间存在着一对多的逻辑关系。图图状构造数据元素之间存在着多对多的逻辑关系。查找表集合数据元素之间不存在任何关系。二、查找表1.定义:查找表是一种以集合为逻辑构造,以查找为核心运算的数据构造。例:一种平面表格,当各条统计能够任意排列时,就成为查找表。2.核心字:由一种或多个数据项构成,可标记若干条统计;主键:由一种或多个数据项构成,能唯一标记一条统计。3.查找:在查找表中寻找核心字值等于给定值的统计,若找到,则返回统计号;否则,则查找失败。4.静态查找表和动态查找表静态查找表:只做建表、查找操作;动态查找表:做建表、查找、插入、删除操作。8.2静态查找表◆静态查找表的存储构造:次序表、有序表、索引次序表次序表上的查找次序表的类型定义typedefstruct{intkey;类型data;...}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 经济学管理试题及答案
- 2025-2030中国行驶记录仪行业市场深度调研及前景趋势与投资研究报告
- 2025-2030中国葡萄汁行业市场发展状况及发展趋势与投资前景研究报告
- 2025-2030中国草本植物饮料行业市场发展现状及发展趋势与投资前景研究报告
- 微波理论面试题及答案
- 哮喘测试题及答案
- 2025-2030中国自提柜行业市场现状供需分析及投资评估规划分析研究报告
- 模电数电面试题及答案
- 租商混车合同协议书
- 2025年食品工业节能减排技术改造与产业生态优化路径报告
- 《养老机构重大事故隐患判定标准》主要内容解读
- 米字格A4打印版
- 陕西省西安市莲湖区2023-2024学年六年级下学期期末英语试题
- 企业录用通知书offer模板
- 人际沟通与礼仪智慧树知到课后章节答案2023年下河北工业职业技术学院
- 临床药理学(完整课件)
- 田径运动会竞赛团体总分记录表
- 《中小学综合实践活动课程指导纲要》
- 公共资源交易中心政府采购业务流程图
- 建筑施工单位职业危害归类表
- 重庆市医疗服务价格-重庆市《医疗服务价格手册-》
评论
0/150
提交评论