Microsoft PowerPoint - 第+2+章+线性表[check].ppt [兼容模式]

Size: px
Start display at page:

Download "Microsoft PowerPoint - 第+2+章+线性表[check].ppt [兼容模式]"

Transcription

1

2 教学内容 1 线性表的定义和性质及基本运算 2 线性表的顺序存储结构 3 线性表的链式存储结构 4 多项式的代数运算

3 线性结构的特点 : 数据元素的非空有限集 存在唯一的一个被称作 第一个 的数据元素 ; 存在唯一的一个被称作 最后一个 的数据元素 ; 除第一个之外的数据元素均只有一个前驱 ; 除最后一个之外的数据元素均只有一个后继 例 : 法学系 第一个 数据元素 国贸系 工商系 直接前驱 计算机系 会计系 直接后继 统计系 外语系 最后一个 数据元素

4 数据结构 第二章 线性表 2.1 线性表的类型定义 线性表 (Linear_List) : 由 n (n 0) 个数据元素 a 1, a 2,, a n 组成的 有限并且有序有序的序列 指线性表中的每一个元素都有自己的位置 (position) 其中数据元素的个数 n 定义为表的长度 当 n=0 时称为空表 非空的线性表 (n>0) 常记作 : i 为数据元素 a i 的位序 (a 1, a 2,, a i -1, a i, a i +1,, a n ) 这里的数据元素 a i (1 i n) 只是一个抽象的符号, 其具体含义在不同的情况下可以不同 数据元素为字符 例 1:26 个英文字母组成的字母表 :(A, B, C,, Z) 例 2: 某校从 1978 年到 1983 年各种型号的计算机拥有量的变化情况 : (6, 17, 28, 50, 92, 188) 数据元素为数字

5 例 3: 学生健康情况登记表 : 姓名学号性别年龄健康情况 王小林 男 18 健康 陈红 女 20 一般 刘建平 男 21 健康 张立立 男 17 神经衰弱 文件 (file) 数据元素 ( 结点 记录 ) 由 5 个数据项 ( 字段 域 ) 组成 线性表中的数据元素可以是各种各样的, 但同一线性表中的元素必定具有相同特性 ( 属于同一数据对象 ) 线性表中的数据元素之间存在着序偶关系 <a i 1, a i >

6 从以上例子可看出线性表 ( 非空 ) 的逻辑特征是 : 1 有且仅有一个开始结点 a 1, 它没有直接前趋, 而仅有 一个直接后继 a 2, a 1 叫表头元素 ; 2 有且仅有一个终端结点 a n, 它没有直接后继, 而仅有 一个直接前趋 a n -1, a n 叫表尾元素 ; 3 其余的内部结点 a i (2 i n -1) 都有且仅有一个直接 前趋 a i 1 和一个直接后继 a i +1

7 抽象数据类型线性表的定义 : 参看 P19 ADT List { 数据对象 :D={ a i a i ElemSet, i = 1, 2,..., n, n 0 } 数据关系 :R1={ <a i-1, a i > a i-1, a i D, i = 2,..., n } 基本操作 :( 线性表的基本操作很多, 为讨论方便起见, 在此将它归为四类 ) { 结构初始化 } 任何数据结构在被使用之前都必须进行 初始化, 它类似于编程中使用的变量都必须先有定义 InitList ( &L ) 操作结果 : 构造一个空的线性表 L

8 { 销毁结构 } 任何数据结构不再使用时都必须进行 结构销毁, 其实质 为 释放 它所占有的存储空间 DestroyList( &L ) 初始条件 : 线性表 L 已存在 操作结果 : 销毁线性表 L { 引用型操作 } ListEmpty( L ) 初始条件 : 线性表 L 已存在 操作的结果不改变线性表中的数据元素, 也不改变数据元素之间的关系 操作结果 : 若 L 为空表, 则返回 TRUE, 否则返回 FALSE

9 ListLength( L ) 初始条件 : 线性表 L 已存在 操作结果 : 返回 L 中元素个数 PriorElem( L, cur_e, &pre_e ) 若 cur_e 是线性表 L 中第一个数据元素, 则它的前驱 pre_e 为 空元素 初始条件 : 线性表 L 已存在 操作结果 : 若 cur_e 是 L 中的数据元素若 cur_e, 则用是线性表 pre_e e 返回 L 中最后一个数据元素, 则它的前驱, 否则操作失败它的后继,pre_e next_e 无定义 为 空 NextElem( L, cur_e, &next_e ) 元素 初始条件 : 线性表 L 已存在 操作结果 : 若 cur_e 是 L 中的数据元素, 则用 next_e 返回 它的后继, 否则操作失败,next_e 无定义

10 GetElem( L, i, &e ) 初始条件 : 线性表 L 已存在,1 i LengthList(L) 操作结果 : 用 e 返回 L 中第 i 个元素的值 LocateElem( L, e, compare( ) ) 初始条件 : 线性表 L 已存在,compare( ) 是元素判定函数 操作结果 : 返回 L 中第 1 个与 e 满足关系 compare( ) 的元 素的位序 若这样的元素不存在, 则返回 0 此操作通常称为 定位函数, 这是一种广义的定位函数写法, 以 compare() 作为判定的条件, 参数 e 和线性表中数据元素具有相同类型 较多场合是以 相等 作为判定条件, 此时可省略函数参数, 且操作结果为 : 若线性表中存在与 e 值相同的数据元素, 则返回第一个这样的元素在表中的位序, 否则返回函数值为 0

11 ListTraverse(L, visit( )) 初始条件 : 线性表 L 已存在,visit( ) 为元素的访问函数 操作结果 : 依次对 L 的每个元素调用函数 visit( ) 一旦 visit( ) 失败, 则操作失败 visit() 亦为函数参数, 常见的情况是 依次输出表中元素的值, 同样在这种情况下, 通常的写法也是省略省略函数参数 { 加工型操作 } 操作的结果或修改表中的数据元素, 或修改元素之间的关系 ClearList( &L ) 初始条件 : 线性表 L 已存在 操作结果 : 将 L 重置为空表 在对线性表 L 进行 ClearList(L) 操作之后, 仅是删除表中所有元素, 在以后的程序中仍可对它进行某些 合法 操作, 如判空 插入等 但在进行了 DestroyList(L) 操作之后, 线性表 L 不再存在, 即不能在以后的程序中再引用它

12 PutElem( &L, i, e ) 初始条件 : 线性表 L 已存在,1 i LengthList(L) 操作结果 :L 中第 i 个元素赋值为 e 的值 ListInsert( &L, i, e ) 初始条件 : 线性表 L 已存在,1 i LengthList(L)+1 操作结果 : 在 L 的第 i 个元素之前插入新的元素 e, L 的长度增 1 ListDelete( &L, i, &e ) 初始条件 : 线性表 L 已存在且非空,1 i LengthList(L) 操作结果 : 删除 L 的第 i 个元素, 并用 e 返回其值, L 的长度减 1 } ADT List

13 注 上述各个操作目前还无法在程序设计中加以引用 但如果已经实现了上述定义的线性表类型, 那么在应用问题的 求解中就可以用这些操作实现应用问题的算法设计 例 2-1: 已知集合 A 和 B, 求这两个集合的并集, 使 A=A B, 且 B 不再单独存在 要在计算机中求解, 首先要确定 如何表示集合 用线性表表示集合以线性表 LA 和 LB 分别表示集合 A 和 B, 两个线性表的 数据元素分别为集合 A 和 B 中的成员 由此, 上述集合求并的问题便可演绎为 : 扩大线性表 LA, 将存在于线性表 LB 中而不存在于线性 表 LA 中的数据元素插入到线性表 LA 中去

14 思路 : 1. 从 LB 中取出取出一个数据元素 ; 2. 依值在 LA 中进行查询 ; GetElem ( LB, i, &e ) ListDelete (&LB, i, &e ) LocateElem ( LA, e, equal()) 3. 若不存在, 则插入插入之 ListInsert t ( &LA, n +1 1, e ) 重复上述三步直至 LB 中的数据元素取完为止 其中的每一步能否利用线性表类型中定义的基本操作来 完成呢?

15 算法 2.1 void union(list &La, List Lb) { La_len = ListLength(La); Lb_len =ListLength(Lb); // 求线性表的长度 for (i = 1; i <= Lb_len; i ++) 假设执行时间与表长无关 { GetElem ListDelete (Lb, (&LB, i,&e); &e ) // 取 Lb 中第 i 个数据元素赋给 e if(!locateelem (La, e, equal())) ListInsert (&La, ++La_len, e); // La 中不存在和 e 相同的数据元素, 则插入之 } 执行时间与表长成正比 DestroyList (LB); // 销毁线性表 LB } // union 时间复杂度 :O(ListLength (La) ListLength (Lb))

16 例 2-2: 归并两个 其数据元素按值非递减有序排列的 线性表 La 和 Lb, 求得线性表 Lc 也具有同样特性 设 La = (3, 5, 8, 11) Lb = (2, 6, 8, 9, 11, 15, 20) 则 Lc = ( ) (2, 3, 5, 6, 8, 8, 9, 11, 11, 15, 20) 思路 : 1. 分别从 La 和 Lb 中取得当前元素 a i 和 b j ; 2. 若 a i b j, 则将 a i 插入到 Lc 中, 否则将 b j 插入到 Lc 中

17 算法 2.2 void MergeList(List La, List Lb, List &Lc) { InitList(&Lc); 假设执行时间与表长无关 i = j = 1; k = 0; La_len = ListLength(La); Lb_len = ListLength(Lb); while ((i La_len) && ( j Lb_len)) { // La 和 Lb 均未取完 GetElem(La, i, a i ); GetElem(Lb, j, b j ); if (a i b j ) {ListInsert(Lc, ++k, a i ); ++i; } else { ListInsert(Lc, ++k, b j ); ++j; } } while (i La_len) {GetElem(La, i++, a i ); ListInsert(Lc, ++k, a i );} while (j Lb_len) {GetElem(Lb, j++, b j ); ListInsert(Lc, ++k, b j );} } 时间复杂度 :O(ListLength(La) + ListLength(Lb))

18 在实际的程序设计中要引用线性表的基本操作, 必须先实现先实现线性表类型 确定存储结构 实现基本操作

19 2.2 线性表的顺序表示和实现 在计算机中用一组地址连续地址连续的存储单 元依次存储依次存储线性表的各个数据元素, 称作 线性表的顺序存储结构或顺序映象 用这 种方法存储的线性表称作顺序表

20 例如 : 线性表 (1, 2, 3, 4, 5, 6) 的存储结构 : 依次存储, 地址连续 中间没有空出存储单元 是一个典型的线形表顺序存储结构线形表顺序存储结构 存储结构 : 地址不连续 中间存在空的存储单元 不是一个线形表顺序存储结构线形表顺序存储结构

21 顺序表中元素存储位置的计算 : 线性表的第 1 个数据元素 a 1 的存储位置, 称作线性表的起始位置或基地址 a 1 a 2 a i-1 a i a i+1 a n 基地址假设线性表的每个元素需占 l 个存储单元, 则第 i +1 个数据元素的存储位置和第 i 个数据元素的存储位置之间满足关系 : LOC(a i +1 ) = LOC(a i ) + l 由此, 所有数据元素的存储位置均可由第一个数据元素的存 储位置得到 : LOC(a i ) = LOC(a 1 ) + (i -1) l 基地址

22 线性表顺序存储结构的图示 : 存储地址 LOC(a 1 ) LOC(a 1 )+l LOC(a 1 )+(i -1) l LOC(a 1 )+(n -1) l LOC(a 1 )+n l LOC(a 1 )+(maxlen-1) l 内存状态 a 1 a 2 a i a n 数据元素在线性表中的位序 空闲 1 2 i 顺序表的特点 : 以物理位置相邻表示逻辑关系 任一元素均可随机存取 ( 优点 ) n 顺序表在机器内存中的物理状态 本课程在高级语言层次讨论数据结构的实现方法 需用高级语言已经实现的数据类型描述存储结构

23 地址连续一维数组的定义方式 : 依次存放类型说明符数组名 [ 常量表达式用一维数组 ] 顺序表 ( 元素 ) 数组 ( 元素 ) 随机存取说明 : 常量表达式中可以包含常量和表示顺序表类型相同符号常量, 不能包含变量 即 C 不允许对数组的大小作动态定义 线性表长可变 ( 删除 ) 用一变量表示顺序表的长度属性数组长度不可动态定义 #define LIST_INIT_SIZE 100 // 线性表存储空间的初始分配量 typedef struct { ElemType elem[list_init_size]; int length; // 当前长度 } SqList;

24 考虑到线性表因插入元素而使存储空间不足的问题, 应允许数组容量进行动态扩充 #define LIST_INIT_SIZE 100 // 线性表存储空间的初始分配量 #define LISTINCREMENT 10 // 线性表存储空间的分配增量 typedef struct { ElemType *elem; // 数组指针, 指示线性表的基地址 int length; // 当前长度 int listsize; // 当前分配的存储容量 ( 以 sizeof(elemtype) 为单位 ) } SqList; 注意 C 语言中的数组下标从 0 开始, 因此若 L 是 Sqlist 类型的顺序表, 则表中第 i 个元素是 L.elem[i -1]

25 数据结构 第二章 线性表 顺序表基本操作的实现 初始化操作 : 为顺序表分配一预定义大小的数组空间, 并将线性表的当前长度设为 0 函数的类型 Status InitList_Sq (Sqlist &L) { // 构造一个空的顺序表 L L.elem = (ElemType *)malloc(list_init_size*sizeof(elemtype)); INIT SIZE*si if (! L.elem) exit(overflow); // 存储分配失败 L.lengh = 0; // 空表长度为 0 L.listsize = LIST_INIT_SIZE; // 初始存储容量 return OK; }//InitList_Sq

26 插入操作 : 线性表的插入运算是指在表的第 i (1 i n +1) 个位置上, 插 入一个新结点 b, 使长度为 n 的线性表 (a 1,, a i 1, a i,, a n ) 变成长度为 n + 1 的线性表 (a 1,, a i 1, b, a i,, a n ) 算法思想 : 1) 检查 i 值是否超出所允许的范围 (1 i n + 1), 若超出, 则进 行 超出范围 错误处理 ; 2) 将线性表的第 i 个元素和它后面的所有元素均后移一个位置 ; 3) 将新元素写入到空出的第 i 个位置上 ; 4) 使线性表的长度增

27 算法 2.4 Status ListInsert_Sq(SqList &L, int i, ElemType e) { if (i < 1 i > L.length+1) return ERROR; // 插入位置不合法 if (L.length >= L.listsize) { // 当前存储空间已满, 增加分配 newbase = (ElemType *) realloc(l.elem, (L.listsize+LISTINCREMENT)*sizeof (ElemType)); if (!newbase) exit(overflow); // 存储分配失败 L.elem = newbase; // 新基址 L.listsize i += LISTINCREMENT; // 增加存储容量 } q = &(L.elem[i -1]); // q 指示插入位置 for (p = &(L.elem[L.length-1]); p >= q; --p) *(p+1) = *p; // 插入位置及之后的元素右移 *q = e; // 插入 e ++L.length; // 表长增 1 return OK; }//ListInsert_sq

28 插入算法的时间复杂度分析 : 问题规模是表的长度, 设它的值为 n 算法的时间主要花费在向后移动元素的 for 循环语句上 该语 句的循环次数为 (n i + 1) 由此可看出, 所需移动结点的次 数不仅依赖于表的长度 n, 而且还与插入位置 i 有关 当插入位置在表尾 (i = n+1) 时, 不需要移动任何元素 ; 这是最 好情况, 其时间复杂度 O(1) 当插入位置在表头 (i = 1) 时, 所有元素都要向后移动, 循环语 句执行 n 次, 这是最坏情况, 其时间复杂度 O(n)

29 算法的平均时间复杂度 : 设 p i 为在第 i 个元素之前插入一个元素的概率, 则在长度为 n 的线性表中插入一个元素时所需移动 元素次数的期望值为 E is n 1 i 1 p i ( n i 1) 假设在表中任何位置 (1 i n+1) 上插入结点的机会是均等的, 则 1 p i n 1 E is n 1 1 i 1 n 1 n ( n i 1) 2 由此可见, 在顺序表上做插入运算, 平均要移动表上一半元素 当表长 n 较大时, 算法的效率相当低 算法的平均时间复杂度为 O(n)

30 数据结构 第二章 线性表 删除操作 线性表的删除运算是指将表的第 i (1 i n) 个结点删除, 使长度为 n 的线性表 (a 1,, a i 1, a i,, a n ) 变成长度为 n -1 的线性表 (a 1,, a i 1, a i +1,, a n ) 算法思想 : 1) 检查 i 值是否超出所允许的范围 (1 i n), 若超出, 则进 行 超出范围 错误处理 ; 2) 将线性表的第 i 个元素后面的所有元素均前移一个位置 ; 3) 使线性表的长度减

31 算法 2.5 Status ListDelete_Sq(SqList &L, int i, ElemType &e) { if ((i <1) (i > L.length)) return ERROR; // 删除位置不合法 p = &(L.elem[i -1]); // p 为被删除元素的位置 e = *p; // 被删除元素的值赋给 e q = L.elem+L.length-1; length // 表尾元素的位置 for (++p; p <= q; ; ++p) *(p-1) = *p; // 被删除元素之后的元素左移 --L.length; // 表长减 1 return OK; }//ListInsert_sq

32 删除算法的复杂度分析 : 问题规模是表的长度, 设它的值为 n 算法的时间主要花费在向前移动元素的 for 循环语句上 该语 句的循环次数为 (n i) 由此可看出, 所需移动结点的次数不 仅依赖于表的长度 n, 而且还与删除位置 i 有关 当删除位置在表尾 (i = n) 时, 不需要移动任何元素 ; 这是最好 情况, 其时间复杂度 O(1) 当删除位置在表头 (i = 1) 时, 有 n -1 个元素要向前移动, 循环 语句执行 n -1 次, 这是最坏情况, 其时间复杂度 O(n)

33 算法的平均时间复杂度 : 设 q i 为删除第 i 个元素的概率, 则在长度为 n 的线性表中删除一个元素时所需移动元素次数的期望 值为 E dl n i 1 q i ( n i) 假设在表中任何位置 (1 i n) 删除结点的机会是均等的, 则 1 q i n n 1 n 1 E dl ( n i) n 2 i 1 由此可见, 在顺序表上做删除运算, 平均约要移动表上一半元素 当表长 n 较大时, 算法的效率相当低 算法的平均时间复杂度为 O(n)

34 算法 2.1 void union(list union(sqlist &La, &La, List SqList Lb) Lb) { for La_len (i i = 1; = 0; ListLength(La); i i <= < Lb.length; Lb_len; i ++) i ++) Lb_len =ListLength(Lb); { // e 求线性表的长度 = Lb.elem[i]; // 取 Lb 中第 i 个数据元素赋给 e for (i sign = 1; = i 1; <= Lb_len; i ++) { for j = 0; j < La.length; j ++) GetElem if (La.elem[j] (Lb, i,&e); = e) {sign// = 取 0; Lb break;} 中第 i 个数据元素赋给 e if(!locateelem (sign) {La.elem[La.length] (La, e, equal())) = e; ListInsert La.length++; (&La, ++La_len, } e); // La 中不存在和 e 相同的数据元素, 则插入之 } DestroyList (LB); // 销毁线性表 LB } // union

35 作业 选择题部分 1 一个线性表第一个元素的存储地址是 100, 每个元素的长度为 2, 则第 5 个元素的地址是 ( ) (A)110 (B)108(C)100 (D)120 2 向一个有 127 个元素的顺序表中插入一个新元素并保持原来顺序不变, 平均要移动 ( ) 个元素 (A)64(B)63 (C)63.5 (D)7

36 2.3 线性表的链式表示和实现 顺序表的特点 : 以物理位置相邻表示逻辑关系 顺序表的优点 : 任一元素均可随机存取 顺序表的缺点 : 进行插入和删除操作时, 需移动大量的元素 为避免元素的移动, 我们介绍线性表的另一种存储方式, 链式存储结构, 简称为链表 (Linked List)

37 2.3.1 线性链表 链表的存储方式 用一组物理位置任意的存储单元来存放线性表的数据元素 这组存储单元既可以是连续的, 也可以是不连续的, 甚至是零散 分布在内存中的任意位置上的 因此, 链表中元素的逻辑次序和 物理次序不一定相同

38 例 : 线性表 : ( 赵, 钱, 孙, 李, 周, 吴, 郑, 王 ) 顺序表链表结点存储地址存储状态存储地址存储状态数据域指针域 0031 赵 0001 李 钱 0007 钱 0013 链单 0035 孙 0013 孙 0001 表链 0037 李 0019 王 NULL H 0039 周 0041 吴 0043 郑 0045 王 头指针 H 0031 赵钱孙李 周吴郑王 ^ 0025 吴 0031 赵 0037 郑 0043 周 链 表 指针 单链表是由头指针唯一确定, 因此单链表可以用头指针的名字来命名

39 单链表的表示 单链表在 C 语言中可用 结构指针 来描述 : typedef struct Lnode{ // 声明结点的类型和指向结点的指针类型 ElemType data; // 数据元素的类型 struct Lnode *next; // 指示结点地址的指针 }Lnode, *LinkList;

40 例 : L Struct student { char num[8]; // 数据域 char name[8]; // 数据域 num name score next 0201 丁一 丁二 丁三 66 int score; // 数据域 struct student *next; //next 既是 struct student 类型中的一个成 // 员, 又指向 struct student 类型的数据 }Stu_1, Stu_2, Stu_3, *LinkList; LinkList L;

41 头结点 : 在单链表的第一个结点之前人为地附设的一个结点 头结点 数据域 指针域 不存放任何数据存放附加信息 ( 链表的结点个数等 ) 存放第一个结点的地址 ( 若线性表为空表, 则 空, 用 ^ 表示 ) 头指针存放头结点的地址 L a 1 a 2 a n ^ L ^ 头指针 头结点

42 讨论 1. 在链表中设置头结点有什么好处? 头结点即在链表的首元结点之前附设的一个结点, 该结点的数据域中不存储线性表的数据元素, 其作用是为了对链表进行操作时, 可以对空表 非空表的情况以及对首元结点进行统一处理, 编程更方便

43 单链表的基本操作 1 查找运算 按序号查找 (GetElem(L, i, &e) 在链表中的实现 ) 在单链表中, 即使知道被访问结点的序号 i, 也不能象顺 序表中那样直接按序号 i 访问结点, 而只能从头指针出发, 顺 链域 next 逐个结点往下搜索, 直到搜索到第 i 个结点为止 因此, 单链表是非随机存取的存储结构

44 设单链表的长度为 n, 要查找表中第 i 个结点, 仅当 1 i n 时,i 的值是合法的 其算法如下 : 算法 2.8 Status GetElem_L(LinkList L, int i, ElemType &e) { p = L next; j = 1; // 初始化,p 指向第一个结点,j 为计数器 while ( p && j < i ) { p = p next; ++j; } if (!p j > i ) return ERROR; // 第 i 个元素不存在 e = p data; // 取第 i 个元素 return OK; } // GetElem_L 算法的时间复杂度为 :O(n)

45 按值查找按值查找是在单链表中查找结点值等于给定值 key 的结点, 若有的话, 则返回首次找到的其值为 key 的结点的存储位置 ; 否则返回 NULL 其算法如下: Status GetElem_L1(LinkList L1, ElemType key) { p = L1 next; while ( p && p data!=key) p = p next; return p; } // GetElem_L1 该算法的执行时间与 key 有关, 时间复杂度为 :O(n)

46 2 插入运算 (ListInsert(&L, i, e) 在链表中的实现 ) 步骤 : 1 首先找到 a i -1 的存储位置 p 2 生成一个数据域为 x 的新结点 3 插入新结点:1 结点 a i 1 的指针域指向新结点 2 新结点的指针域指向结点 a i p a i 1 s x s next = p next; p next = s; a i

47 算法 2.9 Status ListInsert_L(LinkList L, int i, ElemType e) { p = L; j = 0; while ( p && j < i -1) { p = p next; ++j; } // 寻找第 i 1 个结点 if (!p j > i -1) return ERROR; // i 小于 1 或者大于表长 s = (LinkList) malloc ( sizeof (LNode)); // 生成新结点 s data = e; s next = p next; // 插入 L 中 p next = s; return OK; } // LinstInsert_L 时间复杂度 :O(n)

48 3 删除运算 (ListDelete(&L, i, &e) 在链表中的实现 ) 步骤 : 1 首先找到 a i 1 的存储位置 p 2 令 p next 指向 a i+1 3 释放结点 a i 的空间 p a i 1 a i a i+1 p next = p next next;

49 Status ListDelete_L(LinkList L, int i, ElemType &e) { p = L; j = 0; 算法 2.10 while ( p next && j < i 1) { p = p next; ++j; } if (!(p next) j > i 1) return ERROR; // 删除位置不合理 q=p next; p next = q next; // 删除并释放结点 e = q data; free(q); return OK; } // ListDelete_L 时间复杂度为 :O(n) 在链表上实现插入和删除运算, 无须移动结点, 仅需修改指针

50 4 建立单链表因为每个新生成的结点的插入位置在表尾 ( 头插法建表逆序建表 ), 则算法如果是 顺序 创建单链表, 那么算法该如何写呢? 中必须维持一个始终指向已建立的链表表尾的指针 从一个空表开始, 逐个将新结点插入到当前链表的表头上 算法 2.11 void CreateList_L(LinkList &L, int n) { // 逆位序输入 n 个元素的值, 建立带表头结点的单链线性表 L L = (LinkList) malloc (sizeof (LNode)); L next = NULL; // 先建立一个带头结点的单链表初始化 for (i = n; i > 0; --i) { p = (LinkList) malloc (sizeof (LNode)); // 生成新结点 scanf(&p data); // 输入元素值 p next = L next; L next = p; // 插入到表头 } } // CreateList_L 算法的时间复杂度为 :O(n)

51 数据结构 第二章 线性表 5 销毁单链表 void DestroyList(LinkList &L) { // 销毁以 L 为头指针的单链表, 释放链表中所有结点空间 while (L) { 为什么要加上 L=NULL 的语句? p = L; 虽然头结点占有的空间已经 L = L next; 释放, 但指针变量 L 中的值没有 free(p); 变, 为安全起见, 置 L 为 空, } // while 以防止对系统空间的访问 L = NULL; } // DestroyList 算法的时间复杂度为 O(n)

52 例 : 以链表作存储结构, 将线性表 (a 1, a 2,, a m, b 1, b 2,, b n ) 改变成 (b 1, b 2,, b n, a 1, a 2,, a m ) 解 : 分析 : 因为对链表来说, 插入 和 删除 仅需修改指针即可完成, 并且由于前 m 个元素之间和后 n 个元素之间的链接关系分别都不需要改变, 则算法的实际操作为 : (1) 将 (b 1, b 2,, b n ) 链接到头结点之后 ; (2) 将 (a 1, a 2,, a m ) 链接到 b n 之后 L a 1 a 2 a m ^ b 1 b 2 b n ^

53 void exchange_l( SLink &L,int m ) { if ( m && L next ) { // 链表不空且 m!= 0 p = L next; k = 1; while( k < m && p ) { // 查找结点 a m p = p next; ++k; } // while if (p next) { // p n!=!= NULL 0 时才需要修改指针的判断? ha = L next; // 以指针 ha 记结点 a 1 的位置 L next = p next; // 将结点 b 1 链接在头结点之后 p next = NULL; // 设 a m 的后继为空 q = L next; 出问题 // 令 q? 指向结点 b 1 while (q next) q = q next; // 查找结点 b n 循环的条件中为什么要有 因为单链表的长度是个隐含值, 如果这里不加在此无法如顺序表那样事先 p->next 是否为空的判别条件判别参数 m 是否合法, 下面哪一个语句会, 如果参数不合适, 则在没有找到第 m 个结点时算法执行到,p = NULL, q->next while 时会出问循环中题的语句就会出问题 //, 将结点因为当 a 1 p->next=null 链接到结点 b n 之后时, q=null,q->next 就不成立了 这是初学链表的人最容易出问题的 P ha 时间复杂度为 P O(n) P q q 地方, 千万要注意避免 L a 1 a 2 a m ^ b 1 b 2 b n ^ q next = ha; } // if(p) } // if(m) } // exchange_l

54 作业 : 线性表采用链式存储结构时, 其地址 ( ) (A) 必须是连续的 (B) 部分地址必须是连续的 (C) 一定是不连续的 (D) 连续与否均可以 2 在一个单链表中, 若 p 所指结点不是最后结点, 在 p 之后插入 s 所指结点, 则执行 () (A)s->next=p;p->next=s; (B) s->next=p->next;p->next=s; (C)s->next=p->next;p=s; (D)p->next=s;s->next=p; 3 在一个单链表中, 若删除 p 所指结点的后续结点, 则执行 ( ) (A)p->next=p->next->next; (B)p=p->next; p->next=p->next->next; (C)p->next=p->next; (D)p =p->next->next;

55 数据结构 第二章 线性表 循环链表 循环链表 : 是一种头尾相接的链表 ( 即 : 表中最后一个结点 的指针域指向头结点, 整个链表形成一个环 ) H a 1 a n H 非空表 单链表 空表 优点 : 从表中任一结点出发均可找到表中其他结点 由于循环链表中没有 NULL 指针, 故涉及遍历操作时, 其终 止条件就不再像非循环链表那样判断 p 或 p next 是否为空, 而 是判断它们是否等于头指针判断它们是否等于头指针

56 H a 1 非空表 a n H 空表 头指针表示单循环链表 找 a 1 的时间复杂度 :O(1) 找 a n 的时间复杂度 :O(n) 不方便 注意 : 表的操作常常是在表的首尾位置上进行 尾指针表示单循环链表 a 1 的存储位置是 :R next next a n 的存储位置是 :R 时间复杂度 :O(1) a 1 a n R

57 例 : 将两个线性表合并成一个线性表 仅需将一个表的表尾和另一个表的表头相接 A a 1 a n A B b 1 b m B C = A next B next = C a 1 a n A b 1 b m B A next = B next next A=B 当线性表以上图的循环链表作存储结构时, 此操作仅需改 变两个指针即可 时间复杂度是 O(1)

58 2.3.3 双向链表 为什么要讨论双向链表 : 单链表的结点 有指示后继的指针域 找后继结点方便 ; 即 : 查找某结点的后继结点的执行时间为 O(1) 无指示前驱的指针域 找前驱结点难 : 从表头出发查找 即 : 查找某结点的前驱结点的执行时间为 O(n) 可用双向链表来克服单链表的这种缺点 双向链表 : 在单链表的每个结点里再增加一个指向其直接 前驱的指针域 prior, 这样链表中就形成了有两个方向不同的 链, 故称为双向链表

59 双向链表的结构可定义如下 : typedef struct DuLNode{ Elemtype data; struct DuLNode *prior, *next; } DuLNode, *DuLinkList; prior element next 结点结构 和单链的循环表类似, 双向链表也可以有循环表, 让头结点的前驱指针指向链表的最后一个结点, 让最后一个结点的后继指针指向头结点 H 空表 H 非空表

60 双向链表结构的对称性 ( 设指针 p 指向某一结点 ): p prior next = p = p next prior 在双向链表中有些操作 ( 如 :ListLength GetElem 等 ), 因仅涉及一个方向的指针, 故它们的算法与线性链表的相同 但在插入 删除时, 则需同时修改两个方向上的指针, 两者 的操作的时间复杂度均为 O(n) p a b c 删除结点 a x 插入结点 p b

61 void ListInsert_DuL(DuLinkList &L, Int i, ElemType e) { // 在带头结点的双向循环链表 L 中第 i 个位置之前插入元素 e s ->date = e; s ->prior = p ->prior; p ->prior ->next = s; p s ->next = p; p ->prior = s; return OK; }// ListInsert_DuL a s e 插入结点 b

62 void ListDelete_DuL(DuLink &L, Int i, ElemType &e) { // 删除带头结点的双向循环链表 L 的第 i 个元素, // 并用 e 返回 e = p -> data; p -> >prior -> >next=p -> >next; p -> next -> prior = p -> prior; free(p); return OK; } // ListDelete_DuL p a b c 删除结点

63 链式存储结构的优点 : 结点空间可以动态申请和释放 ; 数据元素的逻辑次序靠结点的指针来指示, 插入和删除时不 需要移动数据元素 链式存储结构的缺点 : 每个结点的指针域需额外占用存储空间指针域需额外占用存储空间 当每个结点的数据 域所占字节不多时, 指针域所占存储空间的比重显得很大 链式存储结构是非随机存取非随机存取结构 对任一结点的操作都要从 头指针依指针链查找到该结点, 这增加了算法的复杂度 不便于在表尾插入元素 : 需遍历整个表才能找到插入位置

64 有序表的定义若线性表中的数据元素相互之间可以比较, 并且数据元素在线性表中依值非递减或非递增有序排列, 即 a i a i-1 或 a i a i-1 (i = 2, 3,, n), 则称该线性表为有序表 有序表的 有序 特性可以给某些操作带来很大方便, 在某些应用问题中, 如果用有序表而不是线性表将使算法的时间复杂度下降 严格地说, 有序表是另一种数据类型 在有序表类型的定义中需限定数据对象中数据元素所属集合为 有序集, 即集合中任意两个元素之间都可以进行比较, 并在数据关系中加上 a i-1 a i 的条件

65 2.4 一元多项式的表示及相加 符号多项式的表示及其操作是线性表处理的典型用例 一个一元多项式 P n (x) 可以表示为 : P n (x)=p 0 +p 1 x+p 2 x 2 + +p n x n ( 最多有 n+1 项 ) 它由 n+1 个系数唯一确定 因此可用一个线性表 P 来表示 :P = ( p 0, p 1, p 2,, p n ) 每一项的指数 i 隐含在其系数 p i 的序号里 假设 Q m (x) 是一元 m 次多项式, 同样可用线性表 Q 表示 : Q = (q 0, q 1, q 2,, q m ) 若 m < n, 则两个多项式相加的结果 R n (x)= P n (x)+ Q m (x) 可用线性表 R 来表示 : R = (p 0 + q 0, p 1 + q 1, p 2 +q 2,, p m + q m, p m+1,, p n )

66 上述只存储系数的方案对存在大量零系数的多项式并不适用 例如 : S(x) = 1 + 3x x 要用一个长度为 的线性表来表示, 表中仅有 3 个非零系数, 会浪费大量存储空间 若只存储非零系数项, 则必须同时存储相应的指数 一般情况下, 一元 n 次多项式 ( 只表示非零系数项 ) 可写成 : P n ( x) p x e p x e 其中 p i 0 (i =1, 2,, m),n = e m > e m-1 > > e p m x e m 若采用一个长度为 m 且每个数据元素有两个数据项 ( 系数项和指数项 ) 的线性表 (( p 1, e 1 ), ( p 2, e 2 ),, ( p m, e m )) 便可唯一确定多项式 P n (x) 对于 S(x) 类的多项式将大大节省空间

67 对于一元多项式既可以采用顺序存储结构, 也可以采用链式存储结构表示 究竟采用拿一种, 要根据运算而定 : 若进行不改变系数和指数的运算, 可采用顺序存储结构 ; 否则采用链式存储结构 例 : 假设多项式 A 17 (x)=7+3x+9x 8 +5x 17 与 B 8 (x)=8x+22x 7-9x 8 已经用单链表表示, 其头指针分别为 A 与 B, 如下图所示 A B ^ ^ 将两个多项式相加为 C 17 (x)=7+11x+22x 7 +5x 17 C ^ 22 7

68 本章小结 问 : 线性表的逻辑结构特点是什么? 其顺序存储结构和链式存储结构的特点是什么? 答 : 线性表逻辑结构特点 : 只有一个首结点和尾结点 ; 除首尾结点外其他结点只有一个直接前驱和一个直接后继 简言之, 线性结构的逻辑关系是一对一 (1:1) 的 顺序存储时, 相邻数据元素的存放地址也相邻 ( 逻辑与物理统一 ); 要求内存中可用存储单元的地址必须连续 链式存储时, 数据元素可随意存放, 但所占存储空间分两部分, 一部分存放结点值, 另一部分存放表示结点间关系的指针

69 问 : 顺序存储和链式存储各有哪些优缺点? 答 : 顺序存储 : 优点 : 存储密度大, 存储空间利用率高, 可随机存取 缺点 : 插入或删除元素时不方便不方便 链式存储 : 优点 : 插入或删除元素时很方便, 使用灵活 结点空间可以动态申请和释放 ; 缺点 : 存储密度小, 存储空间利用率低, 非随机存取 事实上, 链表插入 删除运算的 快捷是以空间代价来换取时间

70 问 : 在什么情况下用顺序表比链表好? 答 : 顺序表适宜于做查找查找这样的静态操作 ; 链表宜于做插入 删除插入 删除这样的动态操作 若线性表的长度变化不大, 且其主要操作是查找, 则采用顺序表 ; 若线性表的长度变化较大, 且其主要操作是插入 删除操作, 则采用链表

71 教学要求 1 了解线性表的逻辑结构特性以及两种存储实现方式; 2 熟练掌握两种存储结构的描述方法 链表是本章的重难点 3 熟练掌握顺序表的定义与实现, 包括查找 插入 删除算法的实现 ; 4 熟练掌握在各种链表结构中实现线性表操作的基本方法, 能在实际应用中选用适当的链表结构 ; 5 能够从时间和空间复杂度的角度综合比较线性表两种存储结构的不同特点及其适用场合

Microsoft Word - 专升本练习2:线性表.doc

Microsoft Word - 专升本练习2:线性表.doc 第二章 线性表 一 选择题 1. 线性表是 ( ) A. 一个有限序列, 可以为空 B. 一个有限序列, 不能为空 C. 一个有限序列, 可以为空 D. 一个无序序列, 不能为空 2. 对顺序存储的线性表, 设其长度为 n, 在任何位置上插入或删除操作都是等概率 插入一个元素 时大约要移动表中的 ( ) 个元素, 删除一个元素时大约要移动表中的 ( ) 个元素 A. n/2 B. (n+1)/2 C.

More information

Microsoft PowerPoint - 2线性表.ppt [兼容模式]

Microsoft PowerPoint - 2线性表.ppt [兼容模式] 2 线性表 董洪伟 http://hwdong.com 1 主要内容 线性表的类型定义 即抽象数据类型 顺序实现 即用一连续的存储空间来表示 链式实现 即用链表实现 一元稀疏多项式 链表实现 2 线性表的类型定义 线性表 n 个元素的有限序列 数据项 元素 ( 记录 ) 姓名 学号 性别 年龄 班级 健康状况 王小林 790631 男 18 计 91 健康 陈红 790632 女 20 计 91 一般

More information

Microsoft PowerPoint - DS_Ch2.ppt [兼容模式]

Microsoft PowerPoint - DS_Ch2.ppt [兼容模式] 数据结构 Ch.2 线性表 计算机学院 肖明军 Email: xiaomj@ustc.edu.cn http://staff.ustc.edu.cn/~xiaomj 2.1 线性表的逻辑结构 线性表 : 由 n(n 0) 个结点 a 1,, a n 组成的有限序列 记作 :L = (a 1, a 2,, a n ), 属性 : 长度 ---- 结点数目 n,n=0 时为空表 a i ---- 一般是同一类型

More information

Microsoft Word - 数据结构实训与习题725xdy.doc

Microsoft Word - 数据结构实训与习题725xdy.doc 第一部分学习指导与实训 3 第 2 章线性表 2.1 学习指南 (1) 理解线性表的类型定义, 掌握顺序表和链表的结构差别 (2) 熟练掌握顺序表的结构特性, 熟悉顺序表的存储结构 (3) 熟练掌握顺序表的各种运算, 并能灵活运用各种相关操作 (4) 熟练掌握链式存储结构特性, 掌握链表的各种运算 2.2 内容提要 线性表的特点 : 线性表由一组数据元素构成, 表中元素属于同一数据对象 在线性表中,

More information

2.3 链表

2.3  链表 数据结构与算法 ( 二 ) 张铭主讲 采用教材 : 张铭, 王腾蛟, 赵海燕编写高等教育出版社,2008. 6 ( 十一五 国家级规划教材 ) https://pkumooc.coursera.org/bdsalgo-001/ 第二章线性表 2.1 线性表 2.2 顺序表 tail head a 0 a 1 a n-1 2.4 顺序表和链表的比较 2 链表 (linked list) 通过指针把它的一串存储结点链接成一个链

More information

2

2 孙猛 http://www.math.pku.edu.cn/teachers/sunm 2017 年 9 月 18 日 课程主 页 : http://www.math.pku.edu.cn/teachers/sunm/ds2017/ 作业通过 course.pku.edu.cn 提交 2 线性表的概念和抽象数据类型 顺序表示 链接表示 3 4 线性表 ( 简称为表 ) 是零个或多个元素的有穷序列列

More information

Microsoft PowerPoint - ds_2.ppt

Microsoft PowerPoint - ds_2.ppt 第二章线性表 2.1 线性表的概念 2.2 顺序表示 2.3 链接表示 2.4 应用举例 -Josehus 问题另外介绍 动态顺序表 程序里常需要保存一批某种类型的元素, 这些元素的数目可能变化 ( 可以加入或删除元素 ) 有时需要把这组元素看成一个序列, 元素的顺序可能表示实际应用中的某种有意义的关系这样一组元素可以抽象为元素的一个线性表 线性表是元素的集合, 同时记录了元素的顺序关系 线性表是一种最基本的数据结构,

More information

PowerPoint Presentation

PowerPoint Presentation 数据结构与算法 ( 二 ) 张铭主讲 采用教材 : 张铭, 王腾蛟, 赵海燕编写高等教育出版社,2008. 6 ( 十一五 国家级规划教材 ) https://pkumooc.coursera.org/bdsalgo-001/ 第二章 线性表 第二章线性表 2.1 线性表 2.2 顺序表 2.3 链表 {a 0, a 1,, a n 1 } a 0 a 1 a 2 a n-1 tail head a

More information

2 线性表 Linear List 姜玻 2 线性表 Linear List 2.1 线性表的定义和 基本操作 2.2 线性表的实现 线性表的顺序存储 姜玻 教育科学与技术学院 数字媒体技术系 单链表 带表头结点的单链表 单循环链表 双向链

2 线性表 Linear List 姜玻 2 线性表 Linear List 2.1 线性表的定义和 基本操作 2.2 线性表的实现 线性表的顺序存储 姜玻 教育科学与技术学院 数字媒体技术系 单链表 带表头结点的单链表 单循环链表 双向链 2.1 线性表的定义和 基本操作 2.的实现 教育科学与技术学院 数字媒体技术系 前情提要 程序 = 数据结构 + 算法何为数据结构, 相关的术语逻辑结构存储结构运算抽象数据类型 (Abstract Data Type,ADT) C++ 定义和实现何为算法, 其特点和设计要求算法的时间复杂度 ( 大 O 表示 ) 算法的空间复杂度 2.的实现 前情提要 ADT Stack{ 数据 : 0 个或多个元素的序列

More information

Microsoft PowerPoint - ds-1.ppt [兼容模式]

Microsoft PowerPoint - ds-1.ppt [兼容模式] http://jwc..edu.cn/jxgl/ HomePage/Default.asp 2 说 明 总 学 时 : 72( 学 时 )= 56( 课 时 )+ 16( 实 验 ) 行 课 时 间 : 第 1 ~14 周 周 学 时 : 平 均 每 周 4 学 时 上 机 安 排 待 定 考 试 时 间 : 课 程 束 第 8 11 12 章 的 内 容 为 自 学 内 容 ; 目 录 中 标 有

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

目 录 目 录 前言 第 章 绪论 知识点串讲 典型例题详解 课后习题与解答 第 章 线性表 知识点串讲 典型例题详解 课后习题与解答 第 章 栈和队列 知识点串讲 典型例题详解 课后习题与解答 第 章 串 知识点串讲 典型例题详解 课后习题与解答 第 章 数组和广义表 知识点串讲 典型例题详解 课

目 录 目 录 前言 第 章 绪论 知识点串讲 典型例题详解 课后习题与解答 第 章 线性表 知识点串讲 典型例题详解 课后习题与解答 第 章 栈和队列 知识点串讲 典型例题详解 课后习题与解答 第 章 串 知识点串讲 典型例题详解 课后习题与解答 第 章 数组和广义表 知识点串讲 典型例题详解 课 数据结构 语言版 例题详解与课程设计指导 主 编 秦 锋 袁志祥副主编 陈学进 王森玉郑 啸 程泽凯 合肥 目 录 目 录 前言 第 章 绪论 知识点串讲 典型例题详解 课后习题与解答 第 章 线性表 知识点串讲 典型例题详解 课后习题与解答 第 章 栈和队列 知识点串讲 典型例题详解 课后习题与解答 第 章 串 知识点串讲 典型例题详解 课后习题与解答 第 章 数组和广义表 知识点串讲 典型例题详解

More information

数 2-线性表.ppt

数 2-线性表.ppt 数据结构华中科技大学计算机学院 ------------------------------------------------- 1 第二章 2.1 线性表的定义 线性表 2.1.1 线性表的逻辑结构 1. 线性表 : 由 n(n 0) 个数据元素 (a 1,a 2,..., a n ) 构成的有限序列 记作 : L=(a 1,a 2,...,a n ) a 1 首元素 a n 尾元素 2. 表的长度

More information

没有幻灯片标题

没有幻灯片标题 指针作为函数参数 : 原因 : 1 需要修改一个或多个值,( 用 return 语句不能解决问题 ) 2 执行效率的角度 使用方法 : 在函数原型以及函数首部中需要声明能够接受指针值的形参, 具体的写法为 : 数据类型 * 形参名 如果有多个指针型形参, 则用逗号分隔, 例如 : void swap(int *p1, int *p2) 它说明了形参 p1 p2 是指向整型变量的指针 在函数调用时,

More information

Microsoft PowerPoint - DS_Ch5.ppt [兼容模式]

Microsoft PowerPoint - DS_Ch5.ppt [兼容模式] 数据结构 Ch.5 数组和广义表 计算机学院 肖明军 Email: xiaomj@ustc.edu.cn http://staff.ustc.edu.cn/~xiaomj 多维数组 是最易处理的非线性结构 因为各元素类型一致, 各维上下界固定, 所以它最容易线性化, 故可看做是线性表的拓广 例如 : 二维数组可以看做是由列向量组成的线性表 1. 结构特性 例 : 二维数组, 它属于两个向量 ;i th

More information

Microsoft PowerPoint - Slides03_第二章 线性表.ppt [兼容模式]

Microsoft PowerPoint - Slides03_第二章 线性表.ppt [兼容模式] 第二章线性表 定义 基本操作 实现 顺序存储 链式存储 应用 多项式 线性表 (Linear List) 定义 线性表是 n ( 0) 个数据元素的有限序列, 记作 (a 1, a 2,, a n ) a i 是表中数据元素,n 是表长度 假定 : 各元素的数据类型相同 原则上 : 线性表中, 表元素的数据类型可以不相同 采用的存储表示可能会对元素的数据类型有限制 特点 除第一个元素外, 其他每一个元素有一个且仅有一个直接前驱

More information

Microsoft PowerPoint - 1绪论.ppt [兼容模式]

Microsoft PowerPoint - 1绪论.ppt [兼容模式] 1 绪论 董洪伟 http://hwdong.com 主要内容 什么是数据结构 定义 内容 基本术语 数据 : 数据对象 数据元素 数据项 数据结构 : 逻辑结构 物理结构 抽象数据类型 定义 表示 算法和算法分析 算法的概念 算法复杂度 什么是数据结构 程序 = 数据结构 + 算法 Pascal 之父,Niklaus Wirth 数据结构 : 问题的数学模型 数据表示 算法 : 处理问题的策略 数据处理

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

PowerPoint Presentation

PowerPoint Presentation 数据结构与算法 ( 六 ) 张铭主讲 采用教材 : 张铭, 王腾蛟, 赵海燕编写高等教育出版社,2008. 6 ( 十一五 国家级规划教材 ) http://www.jpk.pku.edu.cn/pkujpk/course/sjjg 第 6 章树 C 树的定义和基本术语 树的链式存储结构 子结点表 表示方法 静态 左孩子 / 右兄弟 表示法 动态表示法 动态 左孩子 / 右兄弟 表示法 父指针表示法及其在并查集中的应用

More information

立 志 于 打 造 最 贴 近 考 生 实 际 的 辅 导 书 计 算 机 考 研 之 数 据 结 构 高 分 笔 记 率 辉 编 著 周 伟 张 浩 审 核 讨 论 群 :15945769

立 志 于 打 造 最 贴 近 考 生 实 际 的 辅 导 书 计 算 机 考 研 之 数 据 结 构 高 分 笔 记 率 辉 编 著 周 伟 张 浩 审 核 讨 论 群 :15945769 立 志 于 打 造 最 贴 近 考 生 实 际 的 辅 导 书 计 算 机 考 研 之 数 据 结 构 高 分 笔 记 率 辉 编 著 周 伟 张 浩 审 核 讨 论 群 :15945769 前 言 在 计 算 机 统 考 的 四 门 专 业 课 中, 最 难 拿 高 分 的 就 是 数 据 结 构 但 是 这 门 课 本 身 的 难 度 并 不 是 考 生 最 大 的 障 碍, 真 正 的 障 碍

More information

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos(

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos( 第一章三角函数 1. 三角函数的诱导公式 A 组 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C ( 中诱导公式 ) B. cos( B C) cos A D. sin( B C) sin A sin60 cos( ) sin( 0 )cos( 70 ) 的值等于

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

《C语言程序设计》第2版教材习题参考答案

《C语言程序设计》第2版教材习题参考答案 教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =

More information

Microsoft PowerPoint - DS_Ch2_EN [兼容模式]

Microsoft PowerPoint - DS_Ch2_EN [兼容模式] Data Structure Ch.2 Linear List Dr. He Emil Huang School of Computer Science and Technology Soochow University 苏州大学计算机科学与技术学院网络工程系 本章 ppt 与教材对应情况 本章涉及所有内容涵盖了教材以下章节 P212~P233 6.1 (List definition 表的定义 )

More information

串 零个或多个字符组成的有限序列 将元素类型限制为字符线性表 具有相同类型的数据元素的有限序列 将元素类型扩充为线性表 ( 多维 ) 数组 线性表中的数据元素可以是线性表 2

串 零个或多个字符组成的有限序列 将元素类型限制为字符线性表 具有相同类型的数据元素的有限序列 将元素类型扩充为线性表 ( 多维 ) 数组 线性表中的数据元素可以是线性表 2 Array Zibin Zheng( 郑子彬 ) School of Data and Computer Science, SYSU http://www.inpluslab.com 课程主页 :http://inpluslab.sysu.edu.cn/dsa2016/ 串 零个或多个字符组成的有限序列 将元素类型限制为字符线性表 具有相同类型的数据元素的有限序列 将元素类型扩充为线性表 ( 多维

More information

Microsoft PowerPoint - 08 指针

Microsoft PowerPoint - 08 指针 能源与动力工程学院 目录 指针 (Pointer) 陈 斌 第二节指针数组第四节指针的应用 Fortran 90/95 引入了指针的概念 指针变量的声明方法为 : Fortran 语言中, 一个指针变量可以动态地指向某个数据对象, 或者说, 对此数据对象起了一个别名 Fortran 中的指针与 C 语言中的指针并不相同, 因为它并不代表一个变量在内部存储单元中的地址, 而是代表这个变量的别名, 实质上它相当于

More information

第一章 §1 1

第一章 §1 1 期 中 综 合 测 试 题 本 卷 分 为 第 Ⅰ 卷 ( 选 择 题 ) 和 第 Ⅱ 卷 ( 非 选 择 题 ), 满 分 100 分, 时 间 90 分 钟 第 Ⅰ 卷 ( 选 择 题 共 48 分 ) 一 选 择 题 ( 在 每 题 给 出 的 四 个 选 项 中, 只 有 一 项 是 最 符 合 题 意 的 本 大 题 共 24 小 题, 每 小 题 2 分, 共 48 分 ) 1. 阅 读

More information

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式] 指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++

More information

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式] Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

Microsoft Word - 第2章 线性表.docx

Microsoft Word - 第2章 线性表.docx 第 2 章线性表 学习目标 u 理解顺序表的逻辑与存储原理, 并能实现简单顺序表 u 掌握单链表的逻辑与存储原理, 并能实现单链表 u 掌握双向链表的逻辑与存储原理 u 掌握循环链表的逻辑与存储原理线性表, 顾名思义是像线一样性质的表, 它的用处多不胜数, 是最常用且最简单的一种数据结构, 例如, 一串英文字母 一队手拉手的小朋友 一份学生成绩单等等都可以用线性表表示 线性表的存储结构有顺序存储结构和链式存储结构两种,

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 线性表 Ⅱ 链表 常见考点 链表存储结构的特点 单链表结构及其算法设计方法 双链表结构及其算法设计方法 循环链表结构及其算法设计方法 灵活运用链表解决一些较复杂的应用问题 3.1 线性表链式存储结构概述 3.1.1 要点归纳 1. 链表线性表的链式存储结构称为链表, 通常线性表中的一个元素用一个链表结点存放, 每个结点增加指针域表示结点之间的逻辑关系 有一个指针域的链表称为单链表 ( 通常结点指针指向其后继结点

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

数据结构 Data Structure

数据结构 Data Structure 数据结构 : 线性表 Data Structure 2016 年 3 月 15 日星期二 1 线性表 栈和队列 线性表 字典 ADT 栈 队列 2016 年 3 月 15 日星期二 2 线性表 定义 : 线性表 L 是 n 个数据元素 a 0,a 1, a n-1 的有限序列, 记作 L=(a 0,a 1, a n-1 ) 其中元素个数 n(n 0) 定义为表 L 的长度 当 n=0 时,L 为空表,

More information

试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默

试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期  开放本科  期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默 试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默认扩展名为 ( ) A. cpp B. c C. exe D. obj 2. 设 x 和 y 均为逻辑值,

More information

数据结构 Data Structure

数据结构 Data Structure 第三章 : 线性表 线性表 定义 : 线性表 L 是 n 个数据元素 a 0,a, a n- 的有限序列, 记作 L=(a 0,a, a n- ) 其中元素个数 n(n 0) 定义为表 L 的长度 当 n=0 时,L 为空表, 记作 ( ) 特性 : 在表中, 除第一个元素 a 0 外, 其他每一个元素 a i 有一个且仅有 一个直接前驱 a i- 除最后一个元素 a n- 外, 其他每一个元素 a

More information

Microsoft PowerPoint - 0 C复习.ppt [兼容模式]

Microsoft PowerPoint - 0 C复习.ppt [兼容模式] C 复习 董洪伟 http://hwdong.com 1 程序 : 数据 + 处理 ( 运算 ) 数据 : 变量和常量 int i = 3; 初始化式 变量需要定义 : 类型变量名 ; 类型变量名 = 变量或常量 ; doule pi, r=3.45,area; char var= A ; 类型变量 1, 变量 2, 变量 3; 同时定义多个变量, 逗号隔开 2 运算 : 用运算符对数据进行处理 y

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

a1 a2 lc1 lc2 c1 c2 hb lb1 lb2 bc lx hc lx bc bx bb x 1. 5la 12d 1 ln 1 1 1 3 ln 4 3 ln ln 4 150 212 150 12d 1 ln 1 3 ln 4 12d 150 12d 12d 12d 0. 4la 1 ln 1 3 ln 4 150 1 ln 1 3 ln

More information

Microsoft PowerPoint - ds-9.ppt [兼容模式]

Microsoft PowerPoint - ds-9.ppt [兼容模式] 第 九 章 静 态 表 动 态 表 哈 希 表 9.1 基 本 概 念 (Page 214) 2 表 : 是 由 同 一 类 型 元 素 成 的 集 合 静 态 表 : 只 做 询 或 检 索 操 作 动 态 表 : 询 检 索 插 入 删 除 关 键 字 : 是 元 素 中 某 个 相 的 值, 用 它 可 以 标 识 一 个 元 素 主 关 键 字 次 关 键 字 : 根 给 定 值, 在 表

More information

PowerPoint Presentation

PowerPoint Presentation 数据结构与数据库 课号 21050301 2012 秋 第五章数组 5.1 数组的定义 5.2 数组的顺序表示和实现 5.3 矩阵的压缩存储 5.3.1 特殊矩阵 5.3.2 稀疏矩阵 2 同理, 一个 n 维数组类型可以定义为其数据元素为 n-1 维数组类型的一维数组类型 数组一旦被定义, 它的维数和维界就不再改变 因此, 除了结构的初始化和销毁之外, 数组只有存取元素和修改元素值的操作 抽象数据类型数组的定义参见教材

More information

试卷代号 : 座位号 I II 中央广播电视大学 学年度第二学期 " 开放本科 " 期末考试 数据结构试题 2011 年 7 月! 题号 I - I 二 三 四! 五! 六 总分 分数 I I I 1 1- I ---1 I 得分 评卷人 一 单项选择

试卷代号 : 座位号 I II 中央广播电视大学 学年度第二学期  开放本科  期末考试 数据结构试题 2011 年 7 月! 题号 I - I 二 三 四! 五! 六 总分 分数 I I I 1 1- I ---1 I 得分 评卷人 一 单项选择 试卷代号 : 1 0 1 0 座位号 I II 中央广播电视大学 2 0 1 0-2 0 1 1 学年度第二学期 " 开放本科 " 期末考试 数据结构试题 2011 年 7 月! 题号 I - I 二 三 四! 五! 六 总分 分数 I I I 1 1- I ---1 I 得分 评卷人 一 单项选择题 ( 在括号内填写所选择的标号 每小题 2 分, 共 1 8 分 ) 1. 一种抽象数据类型包括数据和

More information

<4D F736F F D20B5DACAAED5C220CBABCFDFD0D4BAAFCAFDA3A8BDB2D2E5A3A92E646F63>

<4D F736F F D20B5DACAAED5C220CBABCFDFD0D4BAAFCAFDA3A8BDB2D2E5A3A92E646F63> 高等代数第十章双线性函数 第十章双线性函数 10.1 线性函数 1. 设 V 是数域 F 上的一个线性空间, f 是 V 到 F 的一个映射, 若 f 满足 : (1) f( α + β) = f( α) + f( β); (2) f( kα) = kf( α), 式中 α, β 是 V 中任意元素, k 是 F 中任意数, 则称 f 为 V 上的一个线性函数. 2. 简单性质 : 设 f 是 V

More information

湖北工业大学二 八年招收硕士学位研究生试卷 则从顶点 A 出发进行深度优先遍历可以得到的序列是 : A.ACEDBFG B.ACDGFBE C.AECDBGF D.ABDGFEC 9 在对 n 个元素的序列进行排序时, 堆排序所需要的附加存储空间是 ( ) A. O(log 2 n) B. O(1)

湖北工业大学二 八年招收硕士学位研究生试卷 则从顶点 A 出发进行深度优先遍历可以得到的序列是 : A.ACEDBFG B.ACDGFBE C.AECDBGF D.ABDGFEC 9 在对 n 个元素的序列进行排序时, 堆排序所需要的附加存储空间是 ( ) A. O(log 2 n) B. O(1) 二 八年招收硕士学位研究生试卷 试卷代号 917 试卷名称数据结构 1 试题内容不得超过画线范围, 试题必须打印, 图表清晰, 标注准确 2 考生请注意 : 答案一律做在答题纸上, 做在试卷上一律无效 一 单项选择题 ( 在每小题列出四个供选择的答案 A B C D 中, 选一个正确的答案, 将其代号填在答卷纸相应题号后的下横线上, 每小题 2 分, 共 20 分 ) 1 以下术语与数据的存储结构无关的是(

More information

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3 浙江大学 C 程序设计及实验 试题卷 2002-2003 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:30-10:30 注意 : 答题内容必须写在答题卷上, 写在本试题卷上无效 一. 单项选择题 ( 每题 1 分, 共 10 分 ) 1. 下列运算符中, 优先级最低的是 A.

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF> 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 考 试 2009 年 上 半 年 软 件 设 计 师 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 请 按 下 述 要 求 正 确 填 写 答 题 纸 1. 在 答 题 纸 的 指 定 位 置 填 写 你 所 在 的 省 自 治 区 直 辖 市 计 划 单 列 市 的 名 称 2. 在 答

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

器之 间 向一致时为正 相反时则为负 ③大量电荷的定向移动形成电 流 单个电荷的定向移动同样形成电流 3 电势与电势差 1 陈述概念 电场中某点处 电荷的电势能 E p 与电荷量 q Ep 的比值叫做该点处的电势 表达式为 V 电场中两点之间的 q 电势之差叫做电势差 表达式为 UAB V A VB 2 理解概念 电势差是电场中任意两点之间的电势之差 与参考点的选择无关 电势是反映电场能的性质的物理量

More information

2011-论文选集-2.cdr

2011-论文选集-2.cdr ! "#$# $$ "#$#$$" " $% &%!$ $ "#$$ " ! "!#!$ %" #& # ( #$ ) )& )# )$ ** "& ")! ! "" # $% & &( ( # ) )** )*+ )*$ )) ))" ),+ )," -./ ) ) ) " )++ )+" )%,, !"#" $ ! " #$% & ( & ) % #$% #$% & * #$%#$% #$% (

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

四 读算法 ( 每题 7 分, 共 14 分 ) 1. (1) 查询链表的尾结点 (2) 将第一个结点链接到链表的尾部, 作为新的尾结点 (3) 返回的线性表为 (a 2,a 3,,a n,a 1 ) 2. 递归地后序遍历链式存储的二叉树 五 法填空 ( 每空 2 分, 共 8 分 ) true B

四 读算法 ( 每题 7 分, 共 14 分 ) 1. (1) 查询链表的尾结点 (2) 将第一个结点链接到链表的尾部, 作为新的尾结点 (3) 返回的线性表为 (a 2,a 3,,a n,a 1 ) 2. 递归地后序遍历链式存储的二叉树 五 法填空 ( 每空 2 分, 共 8 分 ) true B 数据结构试卷 ( 一 ) 参考答案 一 选择题 ( 每题 2 分, 共 20 分 ) 1.A 2.D 3.D 4.C 5.C 6.D 7.D 8.C 9.D 10.A 二 填空题 ( 每空 1 分, 共 26 分 ) 1. 正确性 易读性 强壮性 高效率 2. O(n) 3. 9 3 3 4. -1 3 4 X * + 2 Y * 3 / - 5. 2n n-1 n+1 6. e 2e 7. 有向无回路

More information

1 线性空间 基 维数和坐标 3 子空间 4 线性空间的同构 5 线性映射 6 线性映射的像与核 7 线性变换 8 不变子空间 厦门大学数学科学学院网址 :gdjpkc.xmu.edu.c; IP://

1 线性空间 基 维数和坐标 3 子空间 4 线性空间的同构 5 线性映射 6 线性映射的像与核 7 线性变换 8 不变子空间 厦门大学数学科学学院网址 :gdjpkc.xmu.edu.c; IP:// 线性空间与线性映射 知识回顾 1 线性空间 基 维数和坐标 3 子空间 4 线性空间的同构 5 线性映射 6 线性映射的像与核 7 线性变换 8 不变子空间 厦门大学数学科学学院网址 :gdjpkc.xmu.edu.c; IP://11.19.180.133 1 线性空间 厦门大学数学科学学院网址 :gdjpkc.xmu.edu.c; IP://11.19.180.133 定义称 V 是数域 F 上的线性空间,

More information

Microsoft PowerPoint - DS_Ch1.ppt [兼容模式]

Microsoft PowerPoint - DS_Ch1.ppt [兼容模式] 014/4/7 数据结构 计算机学院肖明军 Email: xiaomj@ustc.edu.c http://staff.ustc.edu.c/~xiaomj 1 课程简介 先修课程及条件程序设计的经验 C 离散数学 概率分析 教材 : 数据结构, 黄刘生, 经济科学出版社数据结构 (C 语言版 ), 严蔚敏, 清华大学出版社 考核 : 考试 作业 上机 参考书 C 数据结构,William Ford

More information

untitled

untitled 不 料 料 例 : ( 料 ) 串 度 8 年 數 串 度 4 串 度 數 數 9- ( ) 利 數 struct { ; ; 數 struct 數 ; 9-2 數 利 數 C struct 數 ; C++ 數 ; struct 省略 9-3 例 ( 料 例 ) struct people{ char name[]; int age; char address[4]; char phone[]; int

More information

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不 1. 右 側 程 式 正 確 的 輸 出 應 該 如 下 : * *** ***** ******* ********* 在 不 修 改 右 側 程 式 之 第 4 行 及 第 7 行 程 式 碼 的 前 提 下, 最 少 需 修 改 幾 行 程 式 碼 以 得 到 正 確 輸 出? (A) 1 (B) 2 (C) 3 (D) 4 1 int k = 4; 2 int m = 1; 3 for (int

More information

全国计算机技术与软件专业技术资格(水平)考试

全国计算机技术与软件专业技术资格(水平)考试 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2009 年 下 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 请 按 下 述 要 求 正 确 填 写 答 题 纸 1. 在 答 题 纸 的 指 定 位 置 填 写 你 所 在 的 省 自 治 区 直 辖 市 计 划 单 列 市 的 名 称 2. 在 答

More information

新・解きながら学ぶC言語

新・解きながら学ぶC言語 330!... 67!=... 42 "... 215 " "... 6, 77, 222 #define... 114, 194 #include... 145 %... 21 %... 21 %%... 21 %f... 26 %ld... 162 %lf... 26 %lu... 162 %o... 180 %p... 248 %s... 223, 224 %u... 162 %x... 180

More information

Microsoft PowerPoint - 3栈和队列.ppt [兼容模式]

Microsoft PowerPoint - 3栈和队列.ppt [兼容模式] 队列的类型定义 定义 队列是必须在一端删除 ( 队头 front), 在另一端插入 ( 队尾 rear) 的线性表 特性 先进先出 (FIFO, First In First Out) rear front 117 队列的类型定义 ADT Queue{ 数据对象 : 具有线形关系的一组数据操作 : bool EnQueue(Queue &Q, ElemType e); // 入队 bool DeQueue(Queue

More information

PowerPoint Presentation

PowerPoint Presentation 数据结构与算法 ( 六 ) 张铭主讲 采用教材 : 张铭, 王腾蛟, 赵海燕编写高等教育出版社,2008. 6 ( 十一五 国家级规划教材 ) http://www.jpk.pku.edu.cn/pkujpk/course/sjjg A 第 6 章树 B C 树的定义和基本术语 树的链式存储结构 子结点表 表示方法 静态 左孩子 / 右兄弟 表示法 动态表示法 动态 左孩子 / 右兄弟 表示法 父指针表示法及其在并查集中的应用

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

Microsoft PowerPoint - 概率统计Ch02.ppt [Compatibility Mode]

Microsoft PowerPoint - 概率统计Ch02.ppt [Compatibility Mode] 66 随机变量的函数.5 随机变量的函数的分布 设 是一随机变量, 是 的函数, g(, 则 也是一个随机变量. 本节的任务 : 当 取值 x 时, 取值 y g 67 ( 一 离散型随机变量的函数 设 是离散型随机变量, 其分布律为 或 P { x } p (,, x x, P p p, x p 已知随机变量 的分布, 并且已知 g 要求随机变量 的分布. (, 是 的函数 : g(, 则 也是离散型随机变

More information

通过Hive将数据写入到ElasticSearch

通过Hive将数据写入到ElasticSearch 我在 使用 Hive 读取 ElasticSearch 中的数据 文章中介绍了如何使用 Hive 读取 ElasticSearch 中的数据, 本文将接着上文继续介绍如何使用 Hive 将数据写入到 ElasticSearch 中 在使用前同样需要加入 elasticsearch-hadoop-2.3.4.jar 依赖, 具体请参见前文介绍 我们先在 Hive 里面建个名为 iteblog 的表,

More information

<4D F736F F D20CAFDBEDDBDE1B9B9C8ABCAE9>

<4D F736F F D20CAFDBEDDBDE1B9B9C8ABCAE9> 科学出版社职教技术出版中心 www.aboo 普通高等教育 十二五 重点规划教材 计算机系列 中国科学院教材建设专家委员会 十二五 规划教材 数据结构 江家宝程勇主编史春联王廷蔚副主编杨勃蔡敏 参编汪世陈伟 北京 内容简介本书由浅入深, 以浅显易懂的文字与图表对各种数据结构和算法的设计进行分析, 对问题的解决方法做了详尽的剖析, 并且辅之以相应的 C 程序代码, 从而增进读者对数据结构的理解与掌握

More information

工程项目进度管理 西北工业大学管理学院 黄柯鑫博士 甘特图 A B C D E F G 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 甘特图的优点 : 直观明了 ( 图形化概要 ); 简单易懂 ( 易于理解 ); 应用广泛 ( 技术通用 ) 甘特图的缺点 : 不能清晰表示活动间的逻辑关系 WBS 责任分配矩阵 ( 负责〇审批

More information

型来实现 首先进行输入 然后将数据存储在结构体类型中 最后根据需要进行输出 任务实现 定义一个结构体类型实现学生成绩信息的存储! "# $ "%!$&& 输入三个学生的成绩 "' "' "'"# " 学号 姓名 成绩 输出三个学生成绩 "%!$&& "''' "# 程序运行结果如图 所示 图 简单学

型来实现 首先进行输入 然后将数据存储在结构体类型中 最后根据需要进行输出 任务实现 定义一个结构体类型实现学生成绩信息的存储! # $ %!$&& 输入三个学生的成绩 ' ' '#  学号 姓名 成绩 输出三个学生成绩 %!$&& ''' # 程序运行结果如图 所示 图 简单学 项目目标知识目标 理解和掌握结构中的基本概念 理解和掌握线性结构 树形结构和图形结构的概念 以及二元组的表示方法 理解算法评价的规则 算法时间复杂度和空间复杂度的概念 以及数量级的表示方法 技能目标 具有对现实世界的数据进行抽象表示的能力 具有对算法时间复杂度和空间复杂度进行简单分析的能力 素质目标 正确认识计算机中数据的表示与存储方法 培养团队协作精神 培养分析问题解决问题的能力 任务 简单学生成绩管理系统

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

C/C++语言 - 运算符、表达式和语句

C/C++语言 - 运算符、表达式和语句 C/C++ Table of contents 1. 2. 3. 4. C C++ 5. 6. 7. 1 i // shoe1.c: # include # define ADJUST 7. 64 # define SCALE 0. 325 int main ( void ) { double shoe, foot ; shoe = 9. 0; foot = SCALE * shoe

More information

第二章 实验环境

第二章 实验环境 第三章上机实验 本实验教材将按照教材的章节去安排实验, 教师在使用过程中可以根据需要适当 挑选其中的若干实验要求学生上机完成 对于每个实验, 本实验教材都给出了一些代 码示例, 供学生参考 3.1 实验一 : 线性表 3.1.1 背景知识 线性表是一直简单且应用广泛的基本结构, 其特点是在非空的数据元素集合中, 元素之间在逻辑上存在一个序偶关系, 除了第一个元素外, 都有一个直接前驱, 除了最后一个元素外,

More information

数据结构

数据结构 数据结构 主讲 : 张昱马建辉 yuzhang@ustc.edu.cn, 3603804 jianhui@ustc.edu.cn, 3602824 关于课程教学与考核 课程简介 内容简介 数据结构 + 算法 = 程序 数据结构 : 问题的数学模型 线性结构 : 线性表 栈 队列 串 非线性结构 : 树 图 算法 : 求解问题的策略 查找 排序 在 算法基础 课程中介绍 学时 :60/40 学分 :4

More information

Microsoft PowerPoint - C语言课件-9-结构体.pptx

Microsoft PowerPoint - C语言课件-9-结构体.pptx 第九章结构体 郎大鹏 第九章结构体 9.1 结构体类型的声明方法 9.2 结构体类型变量的定义与使用 9.3 结构体数组 9.4 编程举例 9.5 习题 9.1 结构体类型的声明方法 结构体声明的语法形式如下 : struct 结构体标识符 成员变量列表 ; }; 例如, 为了描述班级 ( 假设仅仅包括班级编号 专业 人数等信息 ), 可以声明如下的结构体类型 struct Class char Code[10];

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac)

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) 复习 面向对象编程 将实际问题分解成不同的对象 不的对象提供不同的服务 对象之间可以传递消息 例子小李深夜

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

新版 明解C言語入門編

新版 明解C言語入門編 328, 4, 110, 189, 103, 11... 318. 274 6 ; 10 ; 5? 48 & & 228! 61!= 42 ^= 66 _ 82 /= 66 /* 3 / 19 ~ 164 OR 53 OR 164 = 66 ( ) 115 ( ) 31 ^ OR 164 [] 89, 241 [] 324 + + 4, 19, 241 + + 22 ++ 67 ++ 73 += 66

More information

Microsoft Word - 2008年9月二级C真卷.doc

Microsoft Word - 2008年9月二级C真卷.doc 机 密 启 用 前 2008 年 9 月 全 国 计 算 机 等 级 考 试 二 级 笔 试 试 卷 C 语 言 程 序 设 计 24 注 意 事 项 一 考 生 应 严 格 遵 守 考 场 规 则, 得 到 监 考 人 员 指 令 后 方 可 作 答 二 考 生 拿 到 试 卷 后 应 首 先 将 自 己 的 姓 名 准 考 证 号 等 内 容 涂 写 在 答 题 卡 的 相 应 位 置 上 三

More information

Guava学习之CharSequenceReader

Guava学习之CharSequenceReader CharSequenceReader 类是以 CharSequence 的形式读取字符 CharSequenceReader 类继承自 Reader 类, 除了 remaining() hasremaining() 以及 checkopen() 函数之后, 其他的函数都是重写 Reader 类中的函数 CharSequenceReader 类声明没有用 public 关键字, 所以我们暂时还不能调用这个类

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

More information

网C试题(08上).doc

网C试题(08上).doc 学习中心 姓名 学号 西安电子科技大学网络与继续教育学院 高级语言程序设计 (C) 全真试题 ( 闭卷 90 分钟 ) 题号一二三总分 题分 60 20 20 得分 一 单项选择题 ( 每小题 3 分, 共 60 分 ) 1.C 语言程序的基本单位是 A) 程序行 B) 语句 C) 函数 D) 字符 2. 下列四组选项中, 均是不合法的用户标识符的选项是 A)A B)getc C)include D)while

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout

More information

Microsoft PowerPoint - ch1.ppt

Microsoft PowerPoint - ch1.ppt 数据结构 关于课程教学与考核 主讲 : 张昱 yuzhang@ustc.edu 0551-3603804 课程简介 内容简介 数据结构 + 算法 = 程序 数据结构 : 问题的数学模型 线性结构 : 线性表 栈 队列 串 非线性结构 : 树 图 算法 : 求解问题的策略 查找 排序 在 算法基础 课程中介绍 学时 :60/40 学分 :4 与其他课程的关系 先修课 : 程序设计语言 C 程序设计语言

More information

C++ 程序设计 OJ4 - 参考答案 MASTER 2017 年 5 月 21 日 1

C++ 程序设计 OJ4 - 参考答案 MASTER 2017 年 5 月 21 日 1 C++ 程序设计 OJ4 - 参考答案 MASTER 2017 年 5 月 21 日 1 1 SWAP 1 Swap 题目描述 用函数模板的方式实现对不同数据类型的数组中的数据进行输入 从小到大排序和输出 使用如下主函数测试你的模板设计一个函数模板 Swap, 实现任意数据类型的两个数据的交换, 分别用 int 型 double 型和 char 型的数据进行测试 main 函数如下 : int main()

More information

没有幻灯片标题

没有幻灯片标题 第 12 讲 结构与链表 (Part I) 周水庚 2015 年 12 月 3 日 提要 结构类型和结构变量 结构数组 结构形参和结构指针形参 链表及其应用 联合 位域 枚举 类型定义 程序设计 -2015 年秋 2 提要 结构类型和结构变量 结构数组 结构形参和结构指针形参 链表及其应用 联合 位域 枚举 类型定义 程序设计 -2015 年秋 3 为什么要结构类型? 我们要描述一个班级的同学的信息,

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

第1章

第1章 21 世纪高职高专规划教材 计算机系列 数据结构概论 尹绍宏董卿霞苑春苗 编著 清华大学出版社 北京交通大学出版社 北京 内容简介 本书详细地介绍了各种类型的数据结构, 以及查找和排序的方法 对每一种数据结构, 主要讲述其基本概念, 各种存储结构, 以及不同存储结构下的各种操作的实现, 并用 C 语言对其算法进行实现 对查找和排序的各种不同方法除讲述其方法外, 还给出了用 C 语言实现的算法程序,

More information

38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民 1 08414159 惠 鴻 眼 鏡 行 桃 園 市 中 壢 區 福 德 里 中 華 路 一 段 186 號 1 樓 30,000 獨 資 宋 耀 鴻 105/04/27 府 經 登 字 第 1059003866 號 2 17891110 承 元 冷 氣 空 調 工 程 行 桃 園 市 桃 園 區 中 德 里 國 際 路 1 段 98 巷 50 號 2 樓 之 4 200,000 獨 資 詹 安 平

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

没有幻灯片标题

没有幻灯片标题 第 12 讲 结构与链表 (Part I) 周水庚 2017 年 12 月 7 日 提要 结构类型和结构变量 结构数组 结构形参和结构指针形参 链表及其应用 联合 位域 枚举 类型定义 提要 结构类型和结构变量 结构数组 结构形参和结构指针形参 链表及其应用 联合 位域 枚举 类型定义 为什么要结构类型? 我们要描述一个班级的同学的信息, 每个同学的信息包括 : 学号 姓名 性别 年龄 成绩 家庭地址

More information

Microsoft PowerPoint - C_Structure.ppt

Microsoft PowerPoint - C_Structure.ppt 結構與其他資料型態 Janet Huang 5-1 結構的宣告 struct 結構名稱 struct 結構名稱變數 1, 變數 2,, 變數 m; struct 結構名稱 變數 1, 變數 2,, 變數 m; student; student; 5-2 1 結構變數初值的設定 struct 結構名稱 struct 結構名稱變數 = 初值 1, 初值 2,, 初值 n student="janet","1350901",100,95

More information

Create By PageManager

Create By PageManager ^1~2#??! : 15 @3:50@5:00 7O : @ " - 3 4 : B R; :! : @321 " (A) (B) " " 1C) 1D!" ". lal 1Bl (C1 (D) la1 (B@ 1C1 @D@ 4? (A) lb) @C@ (D) " (Al (B1-" (c1 " 1D1" ". (A) (B) ;C) 1D) (104901-C) : (Al 1Bl 1C)

More information

重 庆 市 万 州 区 人 民 政 府 公 报 卷 首 语 开 启 加 快 建 设 重 庆 第 二 大 城 市 新 征 程 1 万 州 区 委 区 政 府 文 件 传 达 政 令 宣 传 政 策 指 导 工 作 服 务 全 区 中 共 重 庆 市 万 州 区 委 重 庆 市 万 州 区 人 民 政

重 庆 市 万 州 区 人 民 政 府 公 报 卷 首 语 开 启 加 快 建 设 重 庆 第 二 大 城 市 新 征 程 1 万 州 区 委 区 政 府 文 件 传 达 政 令 宣 传 政 策 指 导 工 作 服 务 全 区 中 共 重 庆 市 万 州 区 委 重 庆 市 万 州 区 人 民 政 卷 首 语 开 启 加 快 建 设 重 庆 第 二 大 城 市 新 征 程 市 委 四 届 三 次 全 会 再 次 明 确 提 出 把 万 州 建 成 重 庆 第 二 大 城 市, 鼓 舞 人 心, 催 人 奋 进 全 区 人 民 要 进 一 步 增 强 紧 迫 感 和 责 任 感, 奋 发 有 为, 快 马 扬 鞭, 开 启 加 快 建 设 重 庆 第 二 大 城 市 的 新 征 程 把 万 州

More information

谷 德军 等 对 流边 界层 中 公 路 线 源 扩 散的 期 扩 散 的模 拟 式 大 气扩 散 的 方 法 是 把 污 染物 在 大 气 中 的 扩 散 看 成 标 记 粒 子 在 平 均 风 场 约束 下 的 随机 运 动 假 定 粒 子 的运 动 是 相 互独 立 的 向上 的 坐 标 为

谷 德军 等 对 流边 界层 中 公 路 线 源 扩 散的 期 扩 散 的模 拟 式 大 气扩 散 的 方 法 是 把 污 染物 在 大 气 中 的 扩 散 看 成 标 记 粒 子 在 平 均 风 场 约束 下 的 随机 运 动 假 定 粒 子 的运 动 是 相 互独 立 的 向上 的 坐 标 为 谷 德军 等 对 流边 界层 中 公 路 线 源 扩 散的 期 扩 散 的模 拟 式 大 气扩 散 的 方 法 是 把 污 染物 在 大 气 中 的 扩 散 看 成 标 记 粒 子 在 平 均 风 场 约束 下 的 随机 运 动 假 定 粒 子 的运 动 是 相 互独 立 的 向上 的 坐 标 为 时间 步长 的 脉 动速 度 可 以 用 小 匡 每 个 粒 子 的运 动 为 小 分别 代表粒子 在

More information

程序员-下午题-10下

程序员-下午题-10下 全国计算机技术与软件专业技术资格 ( 水平 ) 考试 2010 年下半年程序员下午试卷 ( 考试时间 14:00~16:30 共 150 分钟 ) 请按下述要求正确填写答题纸 1. 在答题纸的指定位置填写你所在的省 自治区 直辖市 计划单列市的名称 2. 在答题纸的指定位置填写准考证号 出生年月日和姓名 3. 答题纸上除填写上述内容外只能写解答 4. 本试卷共 6 道题, 试题一至试题四是必答题,

More information

C++ 程序设计 OJ4 - 参考答案 MASTER 2019 年 5 月 30 日 1

C++ 程序设计 OJ4 - 参考答案 MASTER 2019 年 5 月 30 日 1 C++ 程序设计 OJ4 - 参考答案 MASTER 2019 年 月 30 日 1 1 STRINGSORT 1 StringSort 题目描述 编写程序, 利用 string 类完成一个字符串中字符的排序 ( 降序 ) 并输出 输入描述 输入仅一行, 是一个仅由大小写字母和数字组成的字符串 输出描述 输出排序后的字符串 样例输入 abcde 样例输出 edcba 提示 使用 std::sort

More information

数据结构与算法分析--绪论

数据结构与算法分析--绪论 第 5 章数组和广义表 数组是一种人们非常熟悉的数据结构, 几乎所有的程序设计语言都支持这种数据结构或将这种数据结构设定为语言的固有类型 数组这种数据结构可以看成是线性表的推广 科学计算中涉及到大量的矩阵问题, 在程序设计语言中一般都采用数组来存储, 被描述成一个二维数组 但当矩阵规模很大且具有特殊结构 ( 对角矩阵 三角矩阵 对称矩阵 稀疏矩阵等 ), 为减少程序的时间和空间需求, 采用自定义的描述方式

More information

试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期 " 开放本科 " 期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. l

试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期  开放本科  期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. l 试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期 " 开放本科 " 期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. long 2. 在每个 c++ 程序中都必须包含有这样一个函数, 该函数的函数名为 ( ) A. main

More information