




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、附录 习题参考答案习题1参考答案1.1.选择题(1). A. (2). A. (3). A. (4). B.,C. (5). A. (6). A. (7). C. (8). A. (9). B. (10.) A.1.2.填空题(1). 数据 关系(2). 逻辑结构 物理结构(3). 线性数据结构 树型结构 图结构(4). 顺序存储 链式存储 索引存储 散列表(Hash)存储(5). 变量的取值范围 操作的类别(6). 数据元素间的逻辑关系 数据元素存储方式或者数据元素的物理关系(7). 关系 网状结构 树结构(8). 空间复杂度和时间复杂度(9). 空间 时间(10). (n)1.3 名词解释
2、如下:数据:数据是信息的载体,是计算机程序加工和处理的对象,包括数值数据和非数值数据。数据项:数据项指不可分割的、具有独立意义的最小数据单位,数据项有时也称为字段或域。数据元素:数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理,一个数据元素可由若干个数据项组成。数据逻辑结构:数据的逻辑结构就是指数据元素间的关系。数据存储结构:数据的物理结构表示数据元素的存储方式或者数据元素的物理关系。数据类型:是指变量的取值范围和所能够进行的操作的总和。算法:是对特定问题求解步骤的一种描述,是指令的有限序列。1.4 语句的时间复杂度为:(1) (n2) (2) (n2)(3) (n2)(
3、4) (n-1)(5) (n3)1.5 参考程序:main()int X,Y,Z;scanf(%d, %d, %d,&X,&Y,&Z);if (X=Y)if(X=Z)if (Y=Z) printf(%d, %d, %d,X,Y,Z);else printf(%d, %d, %d,X,Z,Y);else printf(%d, %d, %d,Z,X,Y); else if(Z=X)if (Y=Z) printf(%d, %d, %d,Y,Z,X);else printf(%d, %d, %d,Z,Y,X);else printf(%d, %d, %d,Y,X,Z);1.6 参考程序:main()
4、int i,n;float x,a,p;printf(nn=);scanf(%f,&n);printf(nx=);scanf(%f,&x);for(i=0;i=n;i+)scanf(%f,&ai); p=a0;for(i=1;inext=p-next; p-next=s ;(10). s-next 2.3. 解题思路:将顺序表A中的元素输入数组a,若数组a中元素个数为n,将下标为0,1,2,(n-1)/2的元素依次与下标为n,n-1, (n-1)/2的元素交换,输出数组a的元素。参考程序如下:main() int i,n;float t,a;printf(nn=);scanf(%f,&n);f
5、or(i=0;i=n-1;i+)scanf(%f,&ai); for(i=0;i=(n-1)/2;i+) t=ai; ai =an-1-i; an-1-i=t; for(i=0;i=n-1;i+) printf(%f,ai);2.4 算法与程序:main() int i,n;float t,a;printf(nn=);scanf(%f,&n);for(i=0;in;i+)scanf(%f,&ai); for(i=1;ia0 t=ai; ai =a0; a0=t; printf(%f,a0);for(i=2;ia1 t=ai; ai =a1; a1=t; printf(%f,a0);2.5 算法
6、与程序:main() int i,j,k,n;float x,t,a;printf(nx=);scanf(%f,&x);printf(nn=);scanf(%f,&n);for(i=0;in;i+)scanf(%f,&ai); /* 输入线性表中的元素*/for (i=0; in; i+) /* 对线性表中的元素递增排序 */ k=i; for (j=i+1; jn; j+) if (ajak) k=j; if (k!=j) t=ai;ai=ak;ak=t; for(i=0;ix) break;for(k=n-1;k=i;i-) /* 移动线性表中元素,然后插入元素x*/ ak+1=ak; a
7、i=x; for(i=0;i=n;i+) /* 依次输出线性表中的元素 */printf(%f,ai);2.6 算法思路:依次扫描A和B的元素,比较A、B当前的元素的值,将较小值的元素赋给C,如此直到一个线性表扫描完毕,最后将未扫描完顺序表中的余下部分赋给C即可。C的容量要能够容纳A、B两个线性表相加的长度。有序表的合并算法:void merge (SeqList A, SeqList B, SeqList *C) int i,j,k; i=0;j=0;k=0; while ( i=A.last & j=B.last ) if (A.dataidatak+=A.datai+; else C-d
8、atak+=B.dataj+;while (idatak+= A.datai+;while (jdatak+=B.dataj+;C-last=k-1; 2.7 算法思路:依次将A中的元素和B的元素比较,将值相等的元素赋给C,如此直到线性表扫描完毕,线性表C就是所求递增有序线性表。算法:void merge (SeqList A, SeqList B, SeqList *C) int i,j,k; i=0;j=0;k=0; while ( i=A.last)while(jdatak+=A.datai+; C-last=k-1;习题3参考答案3.1.选择题(1). D (2). C (3). D
9、(4). C (5). B (6). C (7). C (8). C (9). B (10).AB (11). D (12). B (13). D (14). C (15). C (16). D(17). D (18). C (19). C (20). C 3.2.填空题(1) FILO, FIFO(2) -1, 3 4 X * + 2 Y * 3 / -(3) stack.top, stack.sstack.top=x(4) pllink-rlink=p-rlink, p-rlink-llink=p-rlink(5) (R-F+M)%M(6) top1+1=top2(7) F=R(8) fr
10、ont=rear(9) front=(rear+1)%n(10) N-13.3 答:一般线性表使用数组来表示的线性表一般有插入、删除、读取等对于任意元素的操作而栈只是一种特殊的线性表栈只能在线性表的一端插入(称为入栈,push)或者读取栈顶元素或者称为“弹出、出栈”(pop)。3.4 答:相同点:栈和队列都是特殊的线性表,只在端点处进行插入,删除操作。不同点:栈只在一端(栈顶)进行插入,删除操作;队列在一端(top)删除,一端(rear)插入。3.5 答:可能序列有14种:ABCD; ACBD; ACDB; ABDC; ADCB; BACD; BADC; BCAD; BCDA; BDCA; C
11、BAD; CBDA; CDBA; DCBA。3.6 答:不能得到4,3,5,6,1,2,最先出栈的是4,则按321的方式出,不可能得到1在2前的序列,可以得到1,3,5,4,2,6,按如下方式进行push(1), pop(), push(2), push(3), pop(), push(4), push(5), pop(), pop(), pop(), push(6), pop()。 3.7 答:stack3.8 非递归:int vonvert (int no,int a) /将十进制数转换为2进制存放在a,并返回位数int r;SeStack s,*p;P=&s;Init_stack(p);
12、while(no)push(p,no%2);no/=10;r=0;while(!empty_stack(p)pop(p,a+r);r+;return r;递归算法:void convert(int no)if(no/20)Convert(no/2);Printf(“%d”,no%2);elseprintf(“%d”,no); 3.9 参考程序:void view(SeStack s)SeStack *p; /假设栈元素为字符型 char c;p=&s;while(!empty_stack(p)c=pop(p);printf(“%c”,c);printf(”n”);3.10 答:char3.11
13、 参考程序:void out(linkqueue q) int e; while(q.rear !=q.front ) dequeue(q,e); print(e); /打印 习题4参考答案4.1 选择题:(1). A (2). D (3). C (4). C (5). B (6). B (7). D (8). A (9). B (10). D4.2 填空题:(1) 串长相等且对应位置字符相等(2) 不含任何元素的串,0(3) 所含字符均是空格,所含空格数(4) 10(5) “hello boy”(6) 13(7) 1066(8) 模式匹配(9) 串中所含不同字符的个数(10) 364.3 S
14、trLength (s)=14, StrLength (t)=4, SubStr( s,8,7)=” STUDENT”, SubStr(t,2,1)=”O”,StrIndex(s,“A”)=3, StrIndex (s,t)=0, StrRep(s,“STUDENT”,q)=” I AM A WORKER”,4.4 StrRep(s,”Y”,”+”);StrRep(s,”+*”,”*Y”);4.5 空串:不含任何字符;空格串:所含字符都是空格串变量和串常量:串常量在程序的执行过程中只能引用不能改变;串变量的值在程序执行过程中是可以改变和重新赋值的主串与子串:子串是主串的一个子集串变量的名字与串
15、变量的值:串变量的名字表示串值的标识符 4.6 int EQUAl(S,T)char *p,*q;p=&S;q=&T;while(*p&*q)if(*p!=*q)return *p-*q;p+;q+;return *p-*q; 4.7 (1)6*8*6=288(2)1000+47*6=1282(3)1000+(8+4)*8=1096(4)1000+(6*7+4)*8=13684.8 i j v1 1 2 12 1 5 -13 2 1 44 3 4 75 4 2 66 5 1 87 5 3 9矩阵的三元组表习题5参考答案5.1 选择(1)C(2)B(3)C(4)B(5)C(6)D(7)C(8)C
16、(9)B(10)C(11)B(12)C(13)C(14)C(15)C(16)B5.2 填空(1)1(2)1036;1040(3)2i(4) 1 ; n ; n-1 ; 2 (5)2k-1;2k-1(6)ACDBGJKIHFE(7)p!=NULL(8)Huffman树(9)其第一个孩子; 下一个兄弟(10)先序遍历;中序遍历5.3 叶子结点:C、F、G、L、I、M、K;非终端结点:A、B、D、E、J;各结点的度:结点: A B C D E F G L I J K M 度: 4 3 0 1 2 0 0 0 0 1 0 0树深:45.4 无序树形态如下:二叉树形态如下:5.5 二叉链表如下:ABCD
17、EFGHIJ三叉链表如下:ACBFGDEJIH5.6 先序遍历序列:ABDEHICFJG中序遍历序列:DBHEIAFJCG后序遍历序列:DHIEBJFGCA5.7 (1) 先序序列和中序序列相同:空树或缺左子树的单支树;(2) 后序序列和中序序列相同:空树或缺右子树的单支树;(3) 先序序列和后序序列相同:空树或只有根结点的二叉树。5.8 这棵二叉树为:5.9 先根遍历序列:ABFGLCDIEJMK后根遍历序列:FGLBCIDMJKEA层次遍历序列:ABCDEFGLIJKM5.10 证明:设树中结点总数为n,叶子结点数为n0,则n=n0 + n1 + + nm (1)再设树中分支数目为B,则B
18、=n1 + 2n2 + 3n3 + + m nm (2)因为除根结点外,每个结点均对应一个进入它的分支,所以有n= B + 1 (3)将(1)和(2)代入(3),得n0 + n1 + + nm = n1 + 2n2 + 3n3 + + m nm + 1从而可得叶子结点数为:n0 = n2 + 2n3 + + (m-1)nm + 1 5.11 由5.10结论得,n0 = (k-1)nk + 1 又由 n=n0 + nk ,得nk= n-n0,代入上式,得n0 = (k-1)(n-n0)+ 1叶子结点数为:n0 = n (k-1) / k5.12 int NodeCount(BiTree T) /
19、计算结点总数 if(T) if (T- lchild=NULL )&( T - rchild=NULL ) return 1; else return NodeCount(T- lchild ) +Node ( T - rchild )+1; elsereturn 0; 5.13 void ExchangeLR(Bitree bt)/* 将bt所指二叉树中所有结点的左、右子树相互交换 */if (bt & (bt-lchild | bt-rchild) bt-lchildbt-rchild; Exchange-lr(bt-lchild); Exchange-lr(bt-rchild);/* E
20、xchangeLR */5.14 int IsFullBitree(Bitree T) /* 是则返回1,否则返回0。*/ Init_Queue(Q); /* 初始化队列*/ flag=0; In_Queue(Q,T); /* 根指针入队列 ,按层次遍历*/ while(!Empty_Queue (Q) Out_Queue(Q,p); if(!p) flag=1; /* 若本次出队列的是空指针时,则修改flag值为1。若以后出队列的指针存在非空,则可断定不是完全二叉树 */ else if (flag) return 0; /*断定不是完全二叉树 */ else In_Queue(Q,p-lc
21、hild); In_Queue(Q,p-rchild); /* 不管孩子是否为空,都入队列。*/ /* while */ return 1; /* 只有从某个孩子指针开始,之后所有孩子指针都为空,才可断定为完全二叉树*/* IsFullBitree */5.15 转换的二叉树为:5.16 对应的森林分别为:5.17 typedef char elemtype; typedef struct elemtype data; int parent; NodeType;(1) 求树中结点双亲的算法:int Parent(NodeType t , elemtype x)/* x不存在时返回-2,否则返回
22、x双亲的下标(根的双亲为-1 */ for(i=0;iMAXNODE;i+) if(x=ti.data) return ti.parent; return -2;/*Parent*/(2) 求树中结点孩子的算法:void Children(NodeType t , elemtype x)for(i=0;i=MAXNODE) printf(“x不存在n”); else flag=0;for(j=0;jMAXNODE;j+) if(i=tj.parent) printf(“x的孩子:%cn”,tj.data);flag=1; if(flag=0) printf(“x无孩子n”); /*Childr
23、en*/5.18 typedef char elemtype;typedef struct ChildNode int childcode; struct ChildNode *nextchild;typedef struct elemtype data; struct ChildNode *firstchild; NodeType;(1) 求树中结点双亲的算法:int ParentCL(NodeType t , elemtype x)/* x不存在时返回-2, 否则返回x双亲的下标 */ for(i=0;i=MAXNODE) return -2; /* x不存在 */ /*搜索x的双亲*/
24、for(i=0;inextchild)if(loc=p-childcode) return i; /*返回x结点的双亲下标*/ /* ParentL */(2) 求树中结点孩子的算法:void ChildrenCL(NodeType t , elemtype x) for(i=0;inextchild) printf(“x的孩子:%cn”,tp- childcode.data); flag=1;if(flag=0) printf(“x无孩子n”);return; /*if*/ printf(“x不存在n”); return;/* ChildrenL */5.19 typedef char el
25、emtype;typedef struct TreeNode elemtype data; struct TreeNode *firstchild; struct TreeNode *nextsibling; NodeType;void ChildrenCSL(NodeType *t, elemtype x) /* 层次遍历方法 */ Init_Queue(Q); /* 初始化队列 */ In_Queue(Q,t); count=0;while(!Empty_Queue (Q)Out_Queue(Q,p);if(p-data=x) /*输出x的孩子*/p=p-firstchild;if(!p)
26、 printf(“无孩子n”);else printf(“x的第%i个孩子:%cn”,+count, p-data);/*输出第一个孩子*/p=p-nextsibling; /*沿右分支*/ while(p) printf(“x的第%i个孩子:%cn”, +count, p-data);p=p- nextsibling; return; if(p- firstchild) In_Queue(Q,p- firstchild);if(p- nextsibling) In_Queue(Q,p- nextsibling);/* ChildrenCSL */5.20 (1) 哈夫曼树为:69281694
27、1192210512743(2) 在上述哈夫曼树的每个左分支上标以1,右分支上标以0,并设这7个字母分别为A、B、C、D、E、F和H,如下图所示:则它们的哈夫曼树为分别为:A:1100B:1101C:10D:011E:00F:010H:111习题6参考答案6.1 选择题(1)C (2)A (3)B(4)C(5)B_条边。(6)B(7)A(8)A(9)B(10)A(11)A(12)A(13)B(14)A(15)B(16)A(17)C6.2 填空(1) 4 (2) 1对多 ; 多对多 (3) n-1 ; n (4) 0_(5) 有向图 (6) 1 (7) 一半 (8) 一半 (9)_第i个链表中边
28、表结点数_(10)_第i个链表中边表结点数_(11)深度优先遍历;广度优先遍历(12)O(n2) (13)_无回路 6.3(1)邻接矩阵:(2)邻接链表:(3)每个顶点的度:顶点 度 V1 3 V2 3 V3 2 V4 3 V5 3 6.4 (1)邻接链表:(2)逆邻接链表:(3)顶点 入度 出度 V1 3 0 V2 2 2 V3 1 2 V4 1 3 V5 2 1 V6 2 36.5 (1)深度优先查找遍历序列:V1 V2 V3 V4 V5; V1 V3 V5 V4 V2; V1 V4 V3 V5 V2(1)广度优先查找遍历序列:V1 V2 V3 V4 V5; V1 V3 V2 V4 V5;
29、 V1 V4 V3 V2 V56.6 有两个连通分量:6.7 顶点(1)(2)(3)(4)(5)Low Close Cost VexLow CloseCost VexLow CloseCost VexLow CloseCost VexLow CloseCost VexV1 0 0 0 0 0 0 0 0 0 0V2 1 0 0 0 0 0 0 0 0 0V3 1 0 1 0 0 0 0 0 0 0V4 3 0 2 1 2 1 0 1 0 1V5 0 5 1 3 2 2 3 0 3Uv1v1,v2v1,v2,v3v1, v2, v3, v4v1, v2, v3, v4, v5T (v1,v2)
30、(v1,v2), (v1,v3) (v1,v2), (v1,v3), (v2,v4) (v1,v2), (v1,v3), (v2,v4), (v4,v5) 最小生成树的示意图如下:6.8 拓扑排序结果: V3 V1 V4 V5 V2 V66.9 (1)建立无向图邻接矩阵算法:提示:参见算法6.1因为无向图的邻接矩阵是对称的,所以有for (k=0; ke; k+) /*输入e条边,建立无向图邻接矩阵*/ scanf(n%d,%d,&i,&j); G -edgesij= G -edgesji=1; (2)建立无向网邻接矩阵算法:提示:参见算法6.1 。初始化邻接矩阵:#define INFINI
31、TY 32768 /* 表示极大值*/for(i=0;in;i+)for(j=0;jn;j+) G-edgesij= INFINITY;输入边的信息:不仅要输入边邻接的两个顶点序号,还要输入边上的权值for (k=0; ke; k+) /*输入e条边,建立无向网邻接矩阵*/ scanf(n%d,%d,%d,&i,&j,&cost); /*设权值为int型*/ G -edgesij= G -edgesji=cost;/*对称矩阵*/ (3)建立有向图邻接矩阵算法:提示:参见算法6.1。6.10 (1)建立无向图邻接链表算法:typedef VertexType char;int Create_N
32、gAdjList(ALGraph *G) /* 输入无向图的顶点数、边数、顶点信息和边的信息建立邻接表 */scanf(%d,&n); if(nn=n;scanf(%d,&e); if(ee=e;for(m=0;mn ;m+) G- adjlist m.firstedge=NULL; /*置每个单链表为空表*/for(m=0;mn;m+) G-adjlistm.vertex=getchar(); /*输入各顶点的符号*/for(m=1;me; m+) scanf(“n%d, %d”,&i,&j); /* 输入一对邻接顶点序号*/ if(i0 | jadjvex=j;p-next= G- adj
33、list i.firstedge;G- adjlist i.firstedge=p; p=(EdgeNode*)malloc(sizeof(EdgeNode);/*在第j+1个链表中插入一个边表结点*/ p-adjvex=i;p-next= G- adjlist j.firstedge;G- adjlist j.firstedge=p; /* for*/return 0; /*成功*/Create_NgAdjList (2)建立有向图逆邻接链表算法:typedef VertexType char;int Create_AdjList(ALGraph *G) /* 输入有向图的顶点数、边数、顶点
34、信息和边的信息建立逆邻接链表 */scanf(%d,&n); if(nn=n;scanf(%d,&e); if(ee=e;for(m=0;mn; m+) G- adjlist m.firstedge=NULL; /*置每个单链表为空表*/for(m=0;mn;m+) G-adjlistm.vertex=getchar(); /*输入各顶点的符号*/for(m=1;me ; m+) scanf(“n%d, %d”,&t,&h); /* 输入弧尾和弧头序号*/ if(t0 | hadjvex=t;p-next= G- adjlist h.firstedge;G- adjlist h.firsted
35、ge=p; /* for*/return 0; /*成功*/Create_AdjList 6.11 void Create_AdjM(ALGraph *G1,MGraph *G2) /*通过无向图的邻接链表G1生成无向图的邻接矩阵G2*/G2-n=G1-n; G2-e=G1-e;for(i=0;in;i+) /* 置G2每个元素为0 */for(j=0;jn;j+) G2-edgesij= 0;for(m=0;mn;m+) G2-vexsm=G1-adjlistm.vertex; /*复制顶点信息*/num=(G1-n/2=0?G1-n/2:G1-n/2+1); /*只要搜索前n/2个单链表即
36、可*/for(m=0;madjlistm.firstedge; while(p) /* 无向图的存储具有对称性*/G2-edgesm p-adjvex = G2-edgesp-adjvex m =1; p=p-next;/* for */*Create_AdjM */6.12 void Create_AdjL(ALGraph *G1,MGraph *G2) /*通过无向图的邻接矩阵G1,生成无向图的邻接链表G2*/G2-n=G1-n; G2-e=G1-e;for(i=0;in;i+) /* 建立每个单链表 */ G2-vexsi=G1-adjlisti.vertex;G2-adjlisti.f
37、irstedge=NULL;for(j=i; jn; j+) /*对称矩阵,只要搜索主对角以上的元素即可*/ if(G1-edgesij= 1) p=(EdgeNode*)malloc(sizeof(EdgeNode);/*在第i+1个链表中插入一个边表结点*/ p-adjvex=j;p-next= G- adjlist i.firstedge;G- adjlist i.firstedge=p; p=(EdgeNode*)malloc(sizeof(EdgeNode);/*在第j+1个链表中插入一个边表结点*/ p-adjvex=i;p-next= G- adjlist j.firstedge
38、;G- adjlist j.firstedge=p;/*if*/* for*/* for*/* Create_AdjL */6.13 (1) 邻接矩阵中1的个数的一半;(2) 若位于i-1,j-1或j-1,i-1位置的元素值等于1,则有边相连,否则没有。(3) 顶点i的度等于第i-1行中或第i-1列中1的个数。6.14 (1) 邻接链表中边表结点的个数的一半;(2) 若第i-1(或j-1)个单链表中存在adjvex域值等于j-1(或i-1)的边表结点,则有边相连,否则没有。(3) 顶点i的度等于第i-1个单链表中边表结点的个数。6.15 提示:参见算法6.2 和6.3。习 题 7参考答案7.1
39、 选择题(1)C (2)C (3) C (4)B (5) A (6)A (7) D (8)B (9)D (10) B(11)B (12)A (13)C (14)C (15)A (16)D (17)C (18)B,C (19)B (20)A7.2 填空题(1) O(n),O(log2n)(2) 1,2,4,8,5, log2(n+1)-1(3) 小于,大于(4) 增序序列(5) ,m-1(6) 70; 34,20,55(7) n/m(8) 开放地址法,链地址法(9) 产生冲突的可能性就越大,产生冲突的可能性就越小(10) 关键码直接(11) , , (12) 16,16,8,21(13) 直接定
40、址法,数字分析法,平方取中法,折叠法,除留余数法,随机数法(14) 开放地址法,再哈希法,链地址法,建立一个公共溢出区(15) 装满程度(16) 索引,快(17) 哈希函数,装填因子(18) 一个结点(19) 中序(20) 等于7.3 一棵二叉排序树(又称二叉查找树)或者是一棵空树,或者是一棵同时满足下列条件的二叉树: (1)若它的左子树不空,则左子树上所有结点的键值均小于它根结点键值。 (2)若它的右子树不空,则右子树上所有结点的键值均大于它根结点键值。 (3)它的左、右子树也分别为二叉排序树。7.4 对地址单元d=H(K),如发生冲突,以d为中心在左右两边交替进行探测。按照二次探测法,键值
41、K的散列地址序列为: do=H(K), d1=(d0+12)mod m, d2=(d0-12)mod m, d3=(d0+22)mod m, d4=(d0-12)mod m, 7.5 衡量算法的标准有很多,时间复杂度只是其中之一。尽管有些算法时间性能很好,但是其他方面可能就存在着不足。比如散列查找的时间性能很优越,但是需要关注如何合理地构造散列函数问题,而且总存在着冲突等现象,为了解决冲突,还得采用其他方法。 二分查找也是有代价的,因为事先必须对整个查找区间进行排序,而排序也是费时的,所以常应用于频繁查找的场合。对于顺序查找,尽管效率不高,但却比较简单,常用于查找范围较小或偶而进行查找的情况。7.6此法要求设立多个散列函数Hi,i=1,k。当给定值K与闭散列表中的某个键值是相对于某个散列函数Hi的同义词因而发生冲突时,继续计算该给定值K在下一个散列函数Hi+1下的散列地址,直到不再产生冲突为止。 7.7散列表由两个一维数组组成。一个称为基本表,另一个称为溢出表。插入首先在基本表上进行;假如发生冲突,则将同义词存人溢出表。 7.8 结点个数为n时,高度最小的树的高度为1,有两层,它有n-1个叶结点,1个分支结点;高度最大的树的高度为n-l,有n层,它有1个叶结点,n-1个分支结点。7.9 设顺序查找以h为表头指针的有序链表,若查找成功则返回结点指针p,查找失败
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年温州市工人业余大学辅导员考试真题
- 2024年辽源市融发资本运营集团有限公司及招聘工作人员真题
- 2025年二手电商信用体系建设与平台可持续发展研究
- 透皮贴剂生物相容性研究行业深度调研及发展项目商业计划书
- 伞面防紫外线技术创新创业项目商业计划书
- 会计培训AI应用行业深度调研及发展项目商业计划书
- DB1301T 350-2020 藁优系列小麦品种保优繁育技术规程
- 2025年儿童教育游戏化在儿童心理健康促进中的应用报告
- 代词现代语法题目及答案
- 大学舞蹈题目大全及答案
- 2024年嘉定区外冈镇招聘工作人员真题
- 贵州国企招聘2025贵州省粮食储备集团有限公司招聘76人笔试参考题库附带答案详解析集合
- 2025年建筑工程土石方回填分包协议范本
- 学生集中配餐管理制度
- 2023-2024学年广东广州番禺区初一下学期期末数学试卷(标准版)
- DB62T 4130-2020 公路混凝土构件蒸汽养护技术规程
- 行政人事部所需各类表格模板
- 胃癌内科护理常规
- 工程资金共管协议书
- 2024北京西城区六年级毕业考英语试题及答案
- 2025年建筑制图试题及答案
评论
0/150
提交评论