Microsoft PowerPoint - ds_2.ppt

Size: px
Start display at page:

Download "Microsoft PowerPoint - ds_2.ppt"

Transcription

1 第二章线性表 2.1 线性表的概念 2.2 顺序表示 2.3 链接表示 2.4 应用举例 -Josehus 问题另外介绍 动态顺序表 程序里常需要保存一批某种类型的元素, 这些元素的数目可能变化 ( 可以加入或删除元素 ) 有时需要把这组元素看成一个序列, 元素的顺序可能表示实际应用中的某种有意义的关系这样一组元素可以抽象为元素的一个线性表 线性表是元素的集合, 同时记录了元素的顺序关系 线性表是一种最基本的数据结构, 在各种程序里应用广泛, 还常作为实现更复杂的数据结构的基础本章讨论线性表的概念, 它的两种基本实现方式, 它们的一些变形, 以及若干应用实例 线性表的概念 元素 :{,,e N-1 是一个元素集合 线性表 : 简称表, 元素的有穷序列, 可包含 0 个或多个元素, 表示为 (,,,e n-1 ),n 0 元素位置称为下标, 下标从 0 开始 ( 一种选择 ) 表中元素个数称为表的长度, 长度为 0 的表是空表 关系 :<, >,<,e 2 >,,<e n-2, e n-1 > 是一种顺序关系 ( 线性关系 ) 例 : 整数的表, 字符串的表, 某种结构的表 线性表是一种线性结构 非空线性表中 : 1. 存在唯一的称为 第一个 的元素 ; 2. 存在唯一的称为 最后一个 的元素 ; 3. 除第一个元素之外, 表中的每个元素都有且只有一个前驱元素 ; 4. 除最后一个元素之外, 表中的每个元素都有且只有一个后继元素 可以把线性表作为一种数学对象, 为它建立抽象模型 3 4 抽象模型元素集合 : 线性表集合 : 基本操作组合 : 取头部 : 取尾部 : 判空表 : 操作的基调 (Signature, 原型, 类型特征 ) 组合 : 取头部 : 取尾部 : 判空表 : 定义操作, 例如表的长度操作基调 : 定义 : 5 其他操作可类似定义 6

2 代数定律 假设 : 定律 : 下面从更实际的角度考虑表的结构 类型与变量说明 : 元素类型 DataTye 元素变量说明 DataTye x; 下标类型 Index 下标变量说明 Index ; 这样下去, 可以定义更多的表操作以及操作之间的关系, 做出一套表的理论 7 线性表类型 List 线性表变量说明 List list; 8 线性表的基本运算 ( 可根据需要扩充 ): 1. List createnulllist ( void ) 创建一个空线性表 2. int insert ( List list, Index, DataTye x ) 在线性表 list 中下标为 的位置插入一个值为 x 的元素, 返回成功与否的标志 操作把新元素插入序列中, 保持原有元素的前后顺序不变 插入可能由于内部原因而失败, 此时原表结构不变 3. int delete (List list, Index ) 在线性表 list 中删除下标为 的元素, 返回删除成功与否的标志 操作保证表中剩余元素的顺序不变 如果表里没有下标 则删除操作失败 4. Index locate ( List list, DataTye x ) 在线性表 list 中查找值为 x 的元素的位置 找到时返回元素在表中的位置, 找不到返回一个特殊值 5. int isnull ( List list ) 判别线性表 list 是否为空表 如果 list 是空表就返回真 ( 在 C 里用非 0), 否则返回假 还可以有其他操作, 例如 1. int deleteelem ( List list, DataTye x ) 在线性表 list 删除值为 x 的元素 2. void sortascend ( List list ) 将线性表 list 的元素按照值的上升顺序重新排列 线性表与数组的比较 : 线性表线性结构是一种更抽象的结构 少数语言内部提供了表类型, 在多数语言里需要自己实现 数组线性结构是一种更具体的结构, 通常作为语言最基本的数据机制, 可直接使用 2.2 顺序表示 线性表的一种可能实现方式是顺序存放其中元素把元素顺序存放在一片连续存储区中, 借助元素在内存的 物理位置 表示元素间的顺序逻辑关系 ( 隐式表示元素间的关系 ), 这样形成的结构称为顺序表 操作集合包括插入 删除等, 还可根据需要考虑许多操作表中元素个数可通过操作改变 操作只有通过下标访问, 元素赋值或取元素值元素个数不变, 创建时确定 完全可能用数组作为实现线性表的一种具体表示结构 顺序表中任一元素的位置都可直接算出, 因此可以在 O(1) 时间直接存取 元素 e i 的地址计算公式 : Locate(e i ) = Locate( ) + c * i 其中 c = sizeof(datatye), 一个元素占用的存储量 11 12

3 逻辑地址 线性表的顺序存储结构示意图 0 1 i n-1 数据元素 e i e n-1 存储地址 Locate( ) Locate( )+c Locate( )+i*c Locate( )+ (n-1)*c 数据元素 e i e n-1 13 顺序表, 可看作以数组作为基础实现的线性表数组的元素个数固定, 线性表的元素个数可以随操作改变, 需要设法弥合两者之间的差异 方式 : 创建一个大数组, 表元素存在数组前面一段 表元素应密集地连续存放, 以便能用数组下标作为表元素索引 ( 效率 ) 需要记录表中元素个数 必须维持元素个数记录和表中实际元素个数一致 数组大小确定了顺序表的最大容量 ( 需根据实际确定 ), 也使插入操作有可能失败连续存放给删除操作的实现带来问题 n 表中当前存在的元素 14 顺序表的 C 实现 : 类型定义定义 1: DataTye elements[nmax]; int n; /* 元素个数 n < NMAX */ /* 没反映 elements 和 n 的内在联系 ; 应专门引进一个类型 */ 定义 2:( 用结构将相关数据成分包装起来 ) struct SeqList { int n; /* 元素个数 n < NMAX */ DataTye elements[nmax]; ; 最好是定义为类型 : tyedef struct SeqList { SeqList; 15 后一定义更清晰, 更符合数据抽象原则 ( 一个对象应是一个整体, 一种对象应定义为类型 ), 应该采用为了使用方便, 常定义指向顺序表类型的指针类型 : tyedef SeqList *PSeqList; 如果函数 f 的原型是 :... f (PSeqList l) 实际调用函数 f 应该采用的形式 : SeqList L1; /* 定义顺序表 L1 */... f(&l1); 在 f 里可以完成对 L1 的任何操作 ( 思考题 : 如果 f 的参数用 SeqList 类型, 情况有什么不同?) 16 顺序表基本运算的实现 算法 2.1 创建空表 PSeqList createnulllist_seq( void ) 算法 2.2 插入 int insert_seq( PSeqList alist, int, DataTye x ) 算法 2.3 删除 int delete_seq( PSeqList alist, int ) 算法 2.4 求表中某元素的下标 int locate_seq( PSeqList alist, DataTye x ) 算法 2.5 求 alist 所指表中下标为 的元素值 DataTye retrieve_seq( PSeqList alist, int ) 算法 2.6 判断表是否为空 算法 2.1 创建空顺序表 PSeqList createnulllist_seq( void ) alist 需要 : 分配存储 把 n 设置为 0, 保证表处于合法的初始状态 0 n elements int isnulllist_seq( PSeqList alist) 17 18

4 创建空顺序表 PSeqList createnulllist_seq( void ) { PSeqList alist = (PSeqList)malloc(sizeof(SeqList)); if (alist!= NULL) alist->n = 0; /* 分配成功, 空表长度为 0 */ else rintf("out of sace!\n"); /* 分配失败 */ return alist; 算法 2.2 顺序表的插入 int insert_seq seq( PSeqList alist, int, DataTye x ) e 2 e 3 e 4 e 5 e 2 e 3 e 4 e 2 x e 3 e 4 e 6 e 5 e 5 e 6 e 6 19 移动元素, 腾出空位后, 把新元素存入空位 20 /* 在 alist 所指顺序表中下标为 的元素之前插入元素 x*/ int insert_seq(pseqlist alist, int, DataTye x) { int q; if ( alist->n == NMAX ) { /* 顺序表已满, 插入失败 */ rintf("seq-list overflow!\n"); return FALSE; if ( < 0 > alist->n ) { /* 不存在下标为 的元素 */ rintf("index of seq-list is out of range! \n"); return FALSE; /* 插入失败 */ for (q = alist->n - 1; q >= ; --q) /* 元素逐一后移 */ alist->elements[q+1] = alist->elements[q]; alist->elements[] = x; /* 插入元素 x */ alist->n++; /* 元素个数加 1 */ return TRUE; 21 算法 2.3 顺序表的删除 int delete_seq seq( PSeqList alist, int ) e 2 e 3 e 4 e 5 e 6 e 2 e 4 e 5 e 6 元素逐个前移, 覆盖掉被删除的元素需要维护元素个数记录 22 /* 在 alist 所指顺序表中删除下标为 的元素 */ int delete_seq( PSeqList alist, int ) { int q; if ( < 0 > alist->n - 1 ) { /* 不存在下标为 的元素 */ rintf("index of seq-list is out of range!\n "); return FALSE; for (q = + 1; q < alist->n; ++ q) /* 元素逐个前移 */ alist->elements[q - 1] = alist->elements[q]; alist->n--; /* 元素个数减 1 */ return TRUE; 算法 2.4 求表中某元素的下标 int locate_seq( PSeqList alist, DataTye x ) int locate_seq(pseqlist alist, DataTye x) { int q; for ( q = 0; q<alist->n; ++q) if (alist->elements[q] == x) return q; return -1; 这里用 1 表示元素没有找到 -1 不是合法位置值, 因此适合用于表示特殊情况 23 24

5 算法 2.5 求 alist 所指表中下标为 的元素值 DataTye retrieve_seq( PSeqList alist, int ) DataTye retrieve_seq( PSeqList alist, int ) { if ( >= 0 && < alist->n ) /* 存在下标为 的元素 */ return alist->elements[]; rintf("index of seq-list is out of range.\n "); return SPECIAL; /* 返回一个表中没有的特殊值, 需定义 */ 参数出错是一类难处理的麻烦问题这里采用的方式是提供信息并返回一个特殊值这是一种处理方式, 也有缺点 25 使用表的程序片段 ( 假定 DataTye 是 int ): PSeqList l1 = createnulllist_seq( ); /* 创建空顺序表 */ insert_seq seq(l1, 0, 9); insert_seq seq(l1, 1, 5); insert_seq seq(l1, 1, 1); for (i = 3; i < 10; ++i) insert_seq(l1, i, i*3); 直接定义表变量 : SeqList L1; /* 注意, 这时表不在合法状态 */ set_emty_seq(&l1); /* 初始化, 把表的 n 成分置为 0 */ insert_seq(&l1, 0, 9); insert_seq(&l1, 1, 5); 直接写 L1.n = 0; 初始化好不好? 26 算法分析 在 n 元素的顺序表里下标 i( 第 i+1 个 ) 的元素前插入元素需要移动 n - i 个元素 ; 删除下标为 i( 第 i+1 个 ) 的元素需要移动 n -i -1 个元素 若在位置 i 插入和删除元素的概率分别是 i 和 i 则插入时的平均移动数是 : n m i = (n-i) i i=0 删除的平均移动数是 : n-1 m d = (n-i-1) i i=0 这里考虑的是平均复杂性, 问题较复杂, 因为这些操作的时间开销依赖于参数 ( 与插入删除位置有关 ) 和分布情况 27 顺序表插入和删除操作的平均时间代价为 O(n)( 最坏也是 O(n), 具体计算见书 ) 特殊情况 : 后端插入 / 删除的时间代价为 O(1), 可考虑独立实现 backinsert_seq(pseqlist,datatye) 和 backdelete_seq(pseqlist) 根据元素值的定位操作 locate_seq, 需顺序与表中元素比较 定位各位置的概率平均分布时, 操作平均需做 n/2 次比较, 时间 O(n) 顺序实现 ( 顺序表 ) 的优点 :O(1) 时间 ( 随机直接, 按位置 ) 存取元素, 元素存储紧凑, 不需要附加空间缺点 : 需要连续的大片空间 ; 插入删除常要大量移动元素 ; 需事先确定空间大小, 有时事先难以做出估计 存储区中可能有大量空闲单元 28 简单的阶段性总结 : 定义了线性表的概念 ( 还给出了一种抽象模型 ) 设计了线性表应的一组基本操作, 明确了操作的含义, 这样一组描述实际上定义了一个抽象数据类型 还提出了另一些可能操作 提出了一种实现模型 顺序表, 讨论了顺序实现的问题 在 C 语言里给出了顺序表的一个具体实现 注意 : 表抽象数据类型的设计可以有许多变化 ( 操作集合的选择 ) 除顺序方式外, 还可能找到其他实现模型 在 C 语言里实现, 完全可能采用其他方式和技术 链接表示 单链表 循环链表 双链表 可通过在与元素相关的地方存放对其他元素的引用, 显式指明元素之间的关系 这样建起的结构称为链接结构, 用这种方式实现的表称为链接表 ( 链表 ) 引用的最常见实现方式是借助语言中的指针 链接结构的最常见实现方式是利用动态存储分配功能 30

6 2.3.1 单链表 最简单的链表是单链表 : 为每个元素关联一个链接, 表示后继关系 ( 这时没有表示前驱关系的信息 ) 结点 : 元素的存储映象, 包括数据域和指针域 数据域 链接域 单链表 : 与表中 n 个元素对应的 n 个结点通过指针链接成一个链表 链表中每个结点只有一个指针域 头指针 : 指示单链表第一个结点的存储位置的指针, 整个链表的存取必须从头指针开始 一个链表的存储示例 head Zhao Qian Sun Zhou Wu Zheng Wang ^ Li 图 2.6 一个线性链表的逻辑结构 实际中不需要关心结点的具体存储地址 ( 与链接表结构无关 ), 只需关心表的逻辑结构链接表的操作也可以在逻辑结构上考虑 单链表的 C 实现 tyedef struct Node Node, *PNode; /* 结点 / 指针类型 */ struct Node { /* 单链表结点结构 */ DataTye info; PNode link; ; 为提高可读性, 可定义如下单链表类型 : tyedef struct Node *LinkList; 定义链表头指针 : LinkList llist; 另一种定义方式 ( 增加一层封装 ): tyedef struct { /* 单链表类型定义 */ PNode head; /* 指向单链表中的第一个结点 */ LinkList; 这种方式把链表的具体实现封装起来 本书没采用这种方式 35 设 llist 是 LinkList 类型变量, 指向单链表的首结点, 如下图 表为空时,llist 的值为 NULL llist. e n-1 (a) 不带头结点 为方便运算实现, 可在链表首结点前增加一个称为头结点的辅助结点 ( 不属于表的内容 ) 头结点的 info 域可不存信息, 或存放与整个表相关的信息 ( 如元素个数 ), 头结点的 link 域指向表的第一个实际结点, 如下图 llist (b) 带头结点. e n-1 36

7 无头结点时, 在表头插入删除时需修改表头指针, 在其他位置插入删除时修改其前驱结点的 link, 两种操作需要分别处理有了头结点, 操作的实现可以统一处理 因为表中每个 有效 结点都链接在另一结点的 link 域 llist llist. e n-1 (a) 不带头结点 (b) 带头结点 下面算法实现的是带头结点的单链表. e n-1 37 单链表基本运算的实现 算法 2.7 创建空单链表 LinkList createnulllist_link( void ) 算法 2.8 单链表的插入 int insert_link( LinkList llist, int i, DataTye x ) 算法 2.9 单链表的删除 int delete_link(linklist llist, DataTye x ) 算法 2.10 在单链表中求某元素的存储位置 PNode locate_link( LinkList llist, DataTye x ) 算法 2.11 求单链表中下标为 i 的元素的存储位置 PNode find_link( LinkList llist, int i ) 算法 2.12 判断单链表是否为空 int isnulllist_link( LinkList llist ) 向下 38 /* 创建一个带头结点的空链表 */ LinkList createnulllist_link( void ) { LinkList llist; /* 申请表头结点空间 */ llist = (LinkList) malloc( sizeof( Node ) ); if ( llist!= NULL ) llist->link = NULL; return llist; 可以增加对错误情况的处理操作正常完成后的状态 : 结点插入操作 : q->link = ->link; ->link = q; q q q llist 返回 39 注意 : 指针更新次序不能错 /* 在带头结点单链表 llist 中下标 i 的 ( 第 i+1 个 ) 结点前插入元素 x */ int insert_link(linklist llist, int i, DataTye x) { PNode = llist, q; int j; for (j = 0 ;!= NULL && j < i; j++) = ->link; if (j!= i) { /* i<1 或者大于表长 */ rintf("index %d is out of range.\n", i); return FALSE; q = (PNode)malloc( sizeof( Node ) ); /* 申请新结点 */ if ( q == NULL ) { rintf( "Out of sace!\n" ); return FALSE; /* 填充数据并插入链表中 */ q->info = x; q->link = ->link; ->link = q; return TRUE ; /* 在 llist 带有头结点的单链表中删除第一个值为 x 的结点 */ /* 这时要求 DataTye 可以用!= 比较 */ int delete_link( LinkList llist, DataTye x ) { PNode = llist, q; /* 找值为 x 的结点的前驱结点的存储位置 */ while( ->link!= NULL && ->link->info!= x ) = ->link; if( ->link == NULL ) { /* 没找到值为 x 的结点 */ rintf("datum does not exist!\n "); return FALSE; q = ->link; /* 找到值为 x 的结点 */ ->link = ->link->link; /* 删除该结点 */ free( q ); return TRUE; q 返回 41 返回 42

8 /* 在带头结点的单链表 llist 中找第一个值为 x 的结点 */ /* 找不到时返回空指针 */ PNode locate_link( LinkList llist, DataTye x ) { PNode ; if (llist == NULL) return NULL; for ( = llist->link;!= NULL && ->info!= x; ) = ->link; return ; /* 在带头结点单链表 llist 中找下标为 i 的 ( 第 i+1 个 ) 结点 */ /* 当表中无下标为 i 的 ( 第 i+1 个 ) 元素时, 返回值为 NULL */ PNode find_link( LinkList llist, int i ) { PNode ; int j; if (i < 0) { /* 检查 i 的值 */ rintf("index of llist is out of range.\n", i); return NULL; for ( = llist, j = 0;!= NULL && j <= i; j++) = ->link; if ( == NULL) rintf("index of llist is out of range.\n", i); 返回 43 return ; 返回 44 单链表与顺序表的比较 存储密度 = 数据本身所占的存储量整个数据结构所占的存储量 (1) 单链表的 link 占用额外存储空间 但整个表的空间安排方式灵活 ; 顺序表需要连续空间, 要按估计的最大空间需求分配, 所占存储里可能有大片闲置空间 (2) 顺序表支持对任一元素的 O(1) 按位置访问 ; 单链表中只能顺链接逐个查找, 按位置访问的时间为 O(n) (3) 在单链表里的插入 删除运算不需要移动其它元素 ; 而对顺序表可能需要移动许多元素单链表适合于实现其中元素常常成批 顺序地处理的线性表顺序表适合静态或大小可以估计的数据表示 45 单链表的前端插入和删除都是 O(1) 操作, 一般位置的插入和删除是 O(n) 操作 修改设计, 增加表尾指针, 可使后端插入变成 O(1) 操作 : llist e. 0 e n-1 带表尾结点指针的链接表 采用这种表示, 插入删除时需要考虑维护表尾指针, 创建表的操作也需要修改同样可以考虑有头结点和没有头结点的形式 双链表 其中的每个结点里设后继指针和前驱指针 既可以直接找到后继, 也可以直接找到前驱 head rear ^ e 2 e n-1 ^ cdlist 带头尾指针的双链表 带有头结点的循环双链表 e n-1 47 双链表的实现数据类型定义 : tyedef struct DNode DNode, *PNode; /* 类型 */ struct DNode { /* 双链表结点结构 */ DataTye data; PNode rev, next; ; tyedef DNode *DLinkList; /* 双链表类型 */ 48

9 双链表的一个特点 : 有了指向一结点的指针, 就可以把该结点从链表上取下 ( 并保持链表的正常状态 ) 完成这一操作的语句序列 ( 假定 指向被删结点 ): if (->next!= NULL) ->next->rev = ->rev; if (->rev!= NULL) ->rev->next = ->next; 在一个结点的后面插入新结点假定 q 指向新结点, 指向表中结点 (q 所指结点插入其后 ) nx = ->next; q->next = nx; if (nx!= NULL) nx->rev = q; ->next = q; q->rev = ; 这里引进 nx 只是为了使代码更清晰一些在结点前插入新结点的操作与此类似 写链接表操作, 需要特别注意指针赋值的顺序 循环链表 让单链表最后结点的指针指向头结点, 就得到循环链表 优点 : 从表中任一结点出发都能访问所有结点 clist e. 1 e n-1 循环链接表插入第一个元素时需要特别处理 : clist 也可以考虑带头结点的循环链表 操作中经常要访问 修改首结点和末结点 让表头指针指向循环链表末结点, 可以使对表头表尾的操作都方便 e. 1 e n-1 clist clist e. 1 e n 实现循环链表 可以采用与单链表一样的数据类型定义 创建链表的操作需要修改 如有头结点的链表 : llist = (LinkList) malloc( sizeof( Node ) ); if ( llist!= NULL ) llist->link = llist; return llist; 无头结点的表插入第一个结点时, 也需建立循环链接 判断空表的操作 ( 有头结点的表 ): return llist->link = llist; 其他操作基本上可以照搬单链表的操作 根据所采用的设计, 可能需要做些小调整 应用举例 Josehus 问题 问题描述 : 设有 n 个人围坐在一个圆桌周围, 现从第 s 个人开始报数, 数到第 m 的人出列, 然后再从出列的下一人开始报数, 数到第 m 的人出列, 如此反复直到所有人全部出列 Josehus 问题 : 对于任意给定的 n, s 和 m, 求出按出列次序得到的 n 个人员的序列 以 n=8,s=1,m=4 为例, 问题的求解过程如图 2-15 图中 s1 指向开始报数位置, 若初始的顺序为 n 1,n 2, n 3,n 4,n 5,n 6,n 7,n 8 则问题的解为 n 4,n 8,n 5, n 2,n 1,n 3,n 7,n 6 54

10 可用顺序表和循环单链表作为求解 Josehus 问题的程序的数据表示, 用表元素表示人的编号 ( 或名字 ) 求解过程概要 : 1) 首先用线性表基本运算, 如创建空线性表 插入元素等, 构造出与具体 Josehus 问题实例对应的表 ; 2) 从 Josehus 表中的第 s 个结点开始寻找 输出 删除表中第 m 个结点 然后从该结点后下一结点寻找 输出和删除表中第 m 个结点, 重复此过程, 直到删除完 Josehus 表中所有元素 程序见书 虽然比较长, 但意义很容易理解顺序表实现中有如何形成循环计数的问题 ( 取模 ) 顺序表的实现方式 前面讨论顺序表时采用的数据类型定义 #define NMAX 40 tyedef struct SeqList { int n; /* 元素个数 n < NMAX */ DataTye elements[nmax]; SeqList; /* SeqList 成为一个自定义类型名 */ 这样做优点 : 实现简单缺点 : 不灵活, 程序里通过 createnulllist_seq 创建的每个 SeqList 的元素个数都一样实际中常常需要几个表, 但可能需要大小不同的表 可能希望下面这样的空表创建函数 : PSeqList createnulllist_seq( int size ); 用原类型就不行了, 因为其中结构成员的数组大小是固定的引进灵活性的方法是修改设计, 把保存元素的数组和表的基本部分分开, 动态分配保存表元素的数组 由于表中元素 数组 的大小 ( 元素容量 ) 在创建时才确定, 不同的表可能不同, 必须记录容量修改的顺序表的基本布局图 : n nmax 当前元素个数当前容量 动态分配的元素存储区 tyedef struct { int n, nmax; DataTye *elems; DSeqList, *PDSeqList; nmax 记录表容量,elems 是指针, 实际存储区动态分配注意 : 为了灵活性, 相关类型变复杂了操作也会变得复杂一些 : 创建操作需要重新写, 比原来的复杂 还需要专门定义一个销毁表的函数 其他函数都不需要修改 ( 还好 ) PDSeqList createnulllist_dseq( int size ) { PDSeqList l = (PDSeqList)malloc(sizeof(DSeqList)); if (l!= NULL) { l->elems = (DataTye*)malloc(sizeof(DataTye)*size); if (l->elems) { l->n = 0; l->nmax = size; /* 设置表容量 */ return l; /* 创建成功 */ else free(l); /* 存储分配失败, 释放已分配存储 */ rintf("out of sace!\n"); /* 存储分配失败 */ return NULL; 使用 PDSeqList list = createnulllist_dseq(100); 59 销毁动态顺序表 : void destroy_dseq( PDSeqList l) { free(l->elems); /* 首先释放元素存储区 */ free(l); /* 释放表结构 */ 由于表元素的存储空间时独立分配的, 必须专门删除 如果直接用 ( 假定 dsl 指向一个动态顺序表 ) free(dsl); 顺序表基本部分的释放了, 元素存储区 ( 另一存储块 ) 就丢了 注意 : 现在不能简单地定义 DSeqList 变量并使用, 因为没有元素存储区 ( 可以专门定义函数来处理 ) DSeqList list; /* 无元素存储区 */ 60

11 动态顺序表 顺序表实现支持 O(1) 的元素访问, 但需要静态 ( 或创建时 ) 确定容量 实际中容量有时很难确定可否实现能在使用中动态改变大小的顺序表? 利用动态分配的技术, 不难实现能动态变动大小的顺序表现在的问题 : 在插入元素时可能遇到存储区满了的情况解决办法 : 换一块更大的存储区由于存储区是动态分配的, 在运行中动态换一块并不困难 ( 显示了指针和动态存储管理的威力 ) 元素存储区设定初始大小, 插入时满则扩充 从问题到程序 讨论了扩充策略和相应时间代价类型定义与前面修改的顺序表类似 : enum { NBASE = 20 ; tyedef int DataTye; /* 根据需要确定 */ tyedef struct { int n, nmax; DataTye *elems; DSeqList, *PDSeqList; elems 指向动态分配的元素存储区,nmax 是当时容量表创建和前面动态分配存储区的顺序表类似, 元素插入操作必须重写 表删除和其他操作可照搬 创建新的动态顺序表 : PDSeqList createnulllist_dseq( void ) { PDSeqList l = (PDSeqList)malloc(sizeof(DSeqList)); if (l!= NULL) { l->elems = (DataTye*)malloc(sizeof(DataTye)*NBASE); if (l->elems) { l->n = 0; /* 空表长度为 0 */ l->nmax = NBASE; return l; /* 创建成功 */ else free(l); /* 存储分配失败, 释放已分配存储 */ rintf("out of sace!\n"); /* 存储分配失败 */ return NULL; 后端元素插入 : int backinsert_dseq(pdseqlist l, DataTye x) { if ( l->n == l->nmax ) { /* 存储区满, 扩大一倍 */ DataTye *d = (DataTye*)realloc(l->elems, l->nmax*2*sizeof(datatye)); if (d == NULL) { /* 空间耗尽, 已有元素还在原处 */ rintf("seq-list overflow!\n"); return FALSE; l->elems = d; l->nmax *= 2; l->elems[n] = x; l->n++; /* 插入, 个数加 1 */ return TRUE; int insert_dseq(pdseqlist l, int, DataTye x) { int q; if ( < 0 > l->n ) { /* 不存在下标为 的元素 */ rintf("index out of range! \n"); return FALSE; if ( l->n == l->nmax ) { /* 存储区满, 扩大一倍 */ DataTye *d = (DataTye*)realloc(l->elems, l->nmax*2*sizeof(datatye)); if (d == NULL) { /* 空间耗尽, 已有元素还在原处 */ rintf("seq-list overflow!\n"); return FALSE; l->elems = d; l->nmax *= 2; for (q = l->n - 1; q >= ; -- q) /* 元素后移 */ l->elems[q+1] = l->elems[q]; l->elems[] = x; l->n++; /* 插入, 个数加 1 */ return TRUE; 65 复杂性分析 : 按位置访问元素,O(1) 操作 : dsl->elems[i] 后端元素插入操作的情况比较复杂 : 正常情况需要 O(1) 时间 ; 当存储区满时可能需要把现有的元素复制到新存储区, 因此是 O(n) 一次 O(n) 情况之后将有至少 n 次正常情况 ( 如果其间没有删除 ) 把该 O(n) 平均进去, 总时间对操作的平均仍是常量 ( 采用加倍的存储分配策略 ) 人们把这类情况称为分期付款式的 O(1) 复杂性 动态顺序表使用很广泛, 被用在一些标准库的实现里 66

12 表结点空间的管理 静态数据结构 : 顺序表 ( 用数组实现 ) 在程序运行期间, 数组大小不变化 动态数据结构 : 链表 ( 通过许多小的结点实现 ) 在程序运行期间, 表大小 ( 结点数 ) 可自由变化 链表结点使用的空间通常通过系统提供的动态存储管理功能获得 (C 语言库函数 malloc 和 free) 也可以自己管理, 用一个数组实现某个类型的链表 建立一个数组 ( 定义, 或者动态分配 ) 数组元素是表结点结构, 其 link 成分是整数 link 成分里保存下一结点的数组下标作为 ( 结点 ) 链接 67 avail 整型变量 0 数组元素通过整数下标 链接 起来 整型变量 avail 指向 空闲单元形成的 链接表, 称为自由表 ( 可用空间表 ) 遇到分配请求, 就从自由表里 分配 结点 用数组实现链表 ( 初始状态 ) list2 list1 avail d c a e -1 7 b 用数组实现链表 ( 一个场景 ) 69 实现 结点结构 : /* 根据需要定义类型, 这里从略 */ struct NNode { DataTye data; int link; ; 定义一个数组变量, 其元素为 NNode 结构 enum { MEMSIZE = 1000 ; /* 根据需要确定 */ NNode array[memsize]; int avail = 0; /* 把数组元素用 link 成分链接起来,-1 表示空链接 */ for (i = 0; i < MEMESIZE-1; ++i) array[i].link = i + 1; array[memsize-1].link = -1; 70 用 -1 表示空链接, 自然数表示正常链接 ( 数组下标 ) 分配结点 (link 是 int 类型的链接域 ), 分配完成后 引用新分配的结点 : if (avail >= 0) { = avail; avail = array[avail].link; 释放结点 ( 假定 是要释放结点的下标 ): array[].link = avail; avail = ; 基于上述语句可以定义自己的 mymalloc 和 myfree 表操作的实现与前面类似, 但需注意链接的表示 71 小 结 本章讨论了线性表的概念 存储表示和基本运算的实现 线性表是一种较简单的数据结构, 是 n 个数据元素的有限序列 常用存储方式是顺序存储和链接存储 在线性表的顺序存储实现中, 元素之间的逻辑关系通过存储位置直接反映 其中只需存放数据元素自身信息, 因此存储密度大 空间利用率高 另外, 元素位置可以从下标出发通过简单算式算出, 因此可以随机存取 这些是顺序存储结构的优点 另一方面, 顺序表中元素的插入和删除运算可能需要移动许多其它元素, 长度变化较大的线性表必须按最大需要的空间分配存储, 这些是线性表顺序存储结构的缺点 在链接实现 ( 链接表 ) 里, 元素间的关系通过显式链接表示, 因此表中元素可以任意存放, 灵活, 可以通过修改链接的方式修改表的结构 但表中的链接占用存储空间, 而且只能顺着链接查找所需元素, 不能随机访问 72

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

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 Word - 数据结构实训与习题725xdy.doc

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

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

Microsoft PowerPoint - DS2-list-1.ppt

Microsoft PowerPoint - DS2-list-1.ppt 2, 线性表 (1) 计算机内存结构 数据结构的基本实现技术 Python 对象和变量 线性表 : 概念 Python list: 线性表的一种实现 链接表 线性表的变形 应用 数据结构和算法 (Python 语言版 ): 线性表裘宗燕,2014-10-9-/1/ 内存结构模型 要理解数据结构处理的问题, 需要对计算机内存 存储管理方面重要基本问题有一些了解 现在首先介绍这方面的一些基本情况 计算机的基本内存结构

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 PowerPoint - 2线性表.ppt [兼容模式]

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

More information

PowerPoint Presentation

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

More information

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

Microsoft PowerPoint - 第+2+章+线性表[check].ppt [兼容模式] 教学内容 1 线性表的定义和性质及基本运算 2 线性表的顺序存储结构 3 线性表的链式存储结构 4 多项式的代数运算 线性结构的特点 : 数据元素的非空有限集 存在唯一的一个被称作 第一个 的数据元素 ; 存在唯一的一个被称作 最后一个 的数据元素 ; 除第一个之外的数据元素均只有一个前驱 ; 除最后一个之外的数据元素均只有一个后继 例 : 法学系 8523101 第一个 数据元素 国贸系 8522105

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

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

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

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

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

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

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

Microsoft Word - 第2章 线性表.docx

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

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

《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

《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

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

数据结构 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

无类继承.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

试卷代号 :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

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63>

<4D F736F F D E4345C6BDCCA84323B1E0B3CCD2AAB5E3D6AED2BB2E646F63> 基于 WINCE 平台 C# 编程要点之一 本文主要介绍在基于 Windows CE 平台的英创嵌入式主板下进行 C#(Microsoft Visual Stdio.Net 2005) 应用程序开发时会常常用到的一些功能函数以及开发方法, 这些方法适用于英创采用 WinCE 平台的所有型号嵌入式主板, 包括 EM9000 EM9260 EM9160 等 本文要点包括 : 文件的删除和复制 如何获取存取设备的空间大小

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

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

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

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

幻灯片 1

幻灯片 1 C Programming Language Lecture 12 Chengwei Zhang ( 张成伟 ) Tian Xia ( 夏天 ) Dept. of Electronics and Information Eng. Huazhong University of Science and Technology Feb. 2014 Lecture 12 Chapter 11: C Data

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

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

数据结构 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

试卷代号 : 座位号 CD 中央广播电视大学 学年度第二学期 " 开放本科 " 期末考试 数据结构 ( 本 ) 试题 I 题号 - - I 二 l 三 l 四 l 总 分 分数 I I I I I I 2009 年 7 月 得分 评卷人 I I I 一

试卷代号 : 座位号 CD 中央广播电视大学 学年度第二学期  开放本科  期末考试 数据结构 ( 本 ) 试题 I 题号 - - I 二 l 三 l 四 l 总 分 分数 I I I I I I 2009 年 7 月 得分 评卷人 I I I 一 试卷代号 : 1 2 5 2 座位号 CD 中央广播电视大学 2 0 0 8-2 0 0 9 学年度第二学期 " 开放本科 " 期末考试 数据结构 ( 本 ) 试题 I 题号 - - I 二 l 三 l 四 l 总 分 分数 I I I I I I 2009 年 7 月 得分 评卷人 I I I 一 单项选择题 ( 每小题 2 分如 崎盯扫, 共 3t 3ω O 1. 针对线性表, 在存储后如果最常用的操作是取第

More information

没有幻灯片标题

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

More information

没有幻灯片标题

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

More information

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

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

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

PowerPoint Presentation

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

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

技 术 文 件

技  术  文  件 技术文件 技术文件名称 :IAlert 接口使用说明 技术文件编号 : 版 本 :V1.0 共页 ( 包括封面 ) 拟制 审核 会签 标准化 批准 中兴通讯股份有限公司 XX 软件模块详细设计说明 版本号 修改记录 文件编号 版本号 拟制人 / 修改人 拟制 / 修改日期 1 V1.0 胡曦 2005-08-12 新建 更改理由 主要更改内容 ( 写要点即可 ) 注 1: 每次更改归档文件 ( 指归档到事业部或公司档案室的文件

More information

<4D F736F F D20CAFDBEDDBDE1B9B9C8ABCAE9>

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

More information

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y 拼图游戏 任务说明 本实例实现了拼图游戏的开发 运行程序, 单击 开始 按钮将打乱图片的位置, 效果如图 1 所示, 然后通过鼠标单击图片进行移动, 直到将所有图片都移动到正确位置, 游戏过关, 过关后的效果如图 2 所示 图 1 打乱图片位置的效果图 2 图片移动到正确位置的效果 关键技术 本程序主要通过 Swing 与枚举类实现, 程序将一幅完整的图片平均分成 9 部分, 每一部分为一个正方形,

More information

程序员-下午题-10下

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

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

新版 明解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

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 点 另一名助教 : 王桢

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i;

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i; double d; 数据 (Fields) char c; void set(double

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

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 1 CARDGAME 1 CardGame 题目描述 桌上有一叠牌, 从第一张牌 ( 即位于顶面的牌 ) 开始从上往下依次编号为 1~n 当至少还剩两张牌时进行以下操作 : 把第一张牌扔掉, 然后把新的第一张放到整叠牌的最后 请模拟这个过程, 依次输出每次扔掉的牌以及最后剩下的牌的编号 输入 输入正整数 n(n

More information

python内存管理

python内存管理 Python 级内存管理 - xiaorui.cc Object-specific allocators [ int ] [ dict ] [ list ]... [ string ] Python core +3 [ Python's object allocator ]

More information

Microsoft PowerPoint - 6. 用户定义类型User-defined Datatypes.ppt [兼容模式]

Microsoft PowerPoint - 6. 用户定义类型User-defined Datatypes.ppt [兼容模式] 用户定义类型 User-defined Datatypes classes and structs 几何向量 (Geometry Vector) 二维平面上的向量由起点和终点构成 每个点包含两个坐标 (x, y), 因此一个向量需要四个实数表示 Start= (0.9,1.5) Start= (0.4,0.8) int main() { double xstart = 0.4; double xend

More information

untitled

untitled 1 5 IBM Intel 1. IBM 第 1/175 页 第 2/175 页 第 3/175 页 80 第 4/175 页 2. IBM 第 5/175 页 3. (1) 第 6/175 页 第 7/175 页 第 8/175 页 = = 第 9/175 页 = = = = = 第 10/175 页 = = = = = = = = 3. (2) 第 11/175 页 第 12/175 页 第 13/175

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

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

Microsoft Word - 第3章.doc

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

More information

3. 反 映 : 4. 五 花 八 门 : 5. 慷 慨 : 6. 参 与 : 7. 慰 劳 : 8. 延 续 : 9. 珍 爱 : 10. 浪 漫 : 三. 找 出 下 列 每 组 词 中 的 近 义 词 或 同 义 词 : 节 日 节 气 节 令 时 节 习 俗 民 俗 仪 式 风 俗 文 献

3. 反 映 : 4. 五 花 八 门 : 5. 慷 慨 : 6. 参 与 : 7. 慰 劳 : 8. 延 续 : 9. 珍 爱 : 10. 浪 漫 : 三. 找 出 下 列 每 组 词 中 的 近 义 词 或 同 义 词 : 节 日 节 气 节 令 时 节 习 俗 民 俗 仪 式 风 俗 文 献 练 习 一. 根 据 课 文 的 内 容 回 答 下 列 问 题 : 1. 为 什 么 说 节 日 是 一 个 民 族 文 化 的 最 集 中 的 体 现? 2. 中 国 最 早 的 节 日 是 怎 么 来 的? 节 日 在 远 古 的 主 要 功 能 有 那 些? 3. 中 国 人 的 节 日 主 要 有 哪 几 大 类? 请 举 例 说 明 4. 节 日 的 形 成 发 展 跟 社 会 的 变

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

通过Hive将数据写入到ElasticSearch

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

More information

试卷代号 : 座位号 中央广播电视大学 学年度第二学期 " 开放本科 " 期末考试 数据结构试题 2012 年 7 月 题号一四五总分一一 分数 得分 评卷人 - 单项选择题, 在括号内填写所选择的标号 { 每小题 2 分, 共 1 8 分 ) 1. 下面算法

试卷代号 : 座位号 中央广播电视大学 学年度第二学期  开放本科  期末考试 数据结构试题 2012 年 7 月 题号一四五总分一一 分数 得分 评卷人 - 单项选择题, 在括号内填写所选择的标号 { 每小题 2 分, 共 1 8 分 ) 1. 下面算法 试卷代号 : 1 0 1 0 座位号 中央广播电视大学 2 0 11 2012 学年度第二学期 " 开放本科 " 期末考试 数据结构试题 2012 年 7 月 题号一四五总分一一 分数 得分 评卷人 - 单项选择题, 在括号内填写所选择的标号 { 每小题 2 分, 共 1 8 分 ) 1. 下面算法的时间复杂度为 ( ) int f( unsigned int n) { if(n= =0 II n=

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

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

Microsoft PowerPoint - string_kruse [兼容模式]

Microsoft PowerPoint - string_kruse [兼容模式] Strings Strings in C not encapsulated Every C-string has type char *. Hence, a C-string references an address in memory, the first of a contiguous set of bytes that store the characters making up the string.

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

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

13

13 孙猛 http://www.math.pku.edu.cn/teachers/sunm 2017 年 11 月 23 日 1 字典及其抽象数据类型 字典的线性表实现 二分法与插值法 (interpolation) 检索 集合的抽象数据类型及实现 2 数据的存储和访问是计算中最重要最基本的 工作, 也是各种计算机应 用和信息处理理的基础 在许多情况下, 计算过程并不不知道数据的存储位置, 但需要使 用数据,

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

FY.DOC

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

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

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

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

More information

ebook39-5

ebook39-5 5 3 last-in-first-out, LIFO 3-1 L i n e a r L i s t 3-8 C h a i n 3 3. 8. 3 C + + 5.1 [ ] s t a c k t o p b o t t o m 5-1a 5-1a E D 5-1b 5-1b E E 5-1a 5-1b 5-1c E t o p D t o p D C C B B B t o p A b o

More information

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

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

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

设计模式 Design Patterns

设计模式 Design Patterns 丁勇 Email:18442056@QQ.com 学习目标 描述 JSP 表达式语言的语法 认识使用 JSP 表达式的优点 在 JSP 中使用表达式语言 表达式语言简介 5 1 EL 为表达式语言 由两个组开发 JSP 标准标签库专家组 JSP 2.0 专家组 JSP 表达式语言的语法 ${EL Expression} JSP EL 表达式用于以下情形 静态文本 标准标签和自定义标签 表达式语言简介

More information

<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

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

More information

幻灯片 1

幻灯片 1 第三课类和对象 ( 封装 ) 互联网新技术在线教育领航者 1 内容概述 1. 封装的概念 2. 访问控制 3. 栈类的封装 4. 构造与析构 5.myString 构造函数 6. 构造与析构的次序 7. 类文件写法 8. 对象的内存 9.this 指针初探 10. 构造函数初始值列表 11. 拷贝构造和赋值运算符重载 12. 浅拷贝 13. 深拷贝 14. 成员函数内联 15. 友元 16.const

More information

第四章 102 图 4唱16 基于图像渲染的理论基础 三张拍摄图像以及它们投影到球面上生成的球面图像 拼图的圆心是相同的 而拼图是由球面图像上的弧线图像组成的 因此我 们称之为同心球拼图 如图 4唱18 所示 这些拼图中半径最大的是圆 Ck 最小的是圆 C0 设圆 Ck 的半径为 r 虚拟相机水平视域为 θ 有 r R sin θ 2 4畅11 由此可见 构造同心球拼图的过程实际上就是对投影图像中的弧线图像

More information

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx 运算符重载 Operator Overloading class Point { public: ; double x_, y_; Why Operator Overloading? Point (double x =0, double y = 0):x_(x),y_(y) { int main(){ Point a(1., 2), b(3,4); Point c = a + b; return 0;

More information

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1 21 , 7, Windows,,,, : 010-62782989 13501256678 13801310933,,,, ;,, ( CIP) /,,. : ;, 2005. 11 ( 21 ) ISBN 7-81082 - 634-4... - : -. TP316-44 CIP ( 2005) 123583 : : : : 100084 : 010-62776969 : 100044 : 010-51686414

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 STC 单片机复杂数据结构 主讲 : 何宾 Email:hebin@mail.buct.edu.cn 2016.03 结构类型定义的格式为 : struct 结构名 } 其中 : 结构元素列表 结构 -- 结构类型的定义 结构元素列表为不同数据类型的列表 结构 -- 结构类型的定义 例 16-1 结构体的声明例子 struct student char name[30]; char gender;

More information

Microsoft PowerPoint - 07 派生数据类型

Microsoft PowerPoint - 07 派生数据类型 能源与动力工程学院 目录 派生类型 陈 斌 固有数据类型 数值型 (numerical) 整型 INTEGER 实型 REAL 复数型 COMPLEX 非数值型 字符型 CHARACTER 逻辑型 ( 布尔型 )LOGICAL 自定义数据类型 ( 派生类型, derived type) 派生类型是指用户利用 Fortran 系统内部类型, 如整型 实型 复数型 逻辑型 字符型等的组合自行创建出一个新的数据类型,

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

表 决, 审 议 程 序 符 合 有 关 法 律 法 规 和 本 公 司 章 程 的 规 定 3 本 议 案 尚 需 提 交 股 东 大 会 审 议, 与 该 等 交 易 有 利 害 关 系 的 关 联 股 东 将 放 弃 在 股 东 大 会 上 对 相 关 议 案 的 投 票 权 ( 二 ) 公

表 决, 审 议 程 序 符 合 有 关 法 律 法 规 和 本 公 司 章 程 的 规 定 3 本 议 案 尚 需 提 交 股 东 大 会 审 议, 与 该 等 交 易 有 利 害 关 系 的 关 联 股 东 将 放 弃 在 股 东 大 会 上 对 相 关 议 案 的 投 票 权 ( 二 ) 公 证 券 代 码 :600850 证 券 简 称 : 华 东 电 脑 编 号 : 临 2016-014 上 海 华 东 电 脑 股 份 有 限 公 司 关 于 预 计 2016 年 日 常 关 联 交 易 的 公 告 本 公 司 董 事 会 及 全 体 董 事 保 证 本 公 告 内 容 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 者 重 大 遗 漏, 并 对 其 内 容 的 真 实

More information

<4D6963726F736F667420576F7264202D20B9F0D5FEB0ECB7A2A3A832303136A3A93532BAC52E646F63>

<4D6963726F736F667420576F7264202D20B9F0D5FEB0ECB7A2A3A832303136A3A93532BAC52E646F63> 广 西 壮 族 自 治 区 人 民 政 府 办 公 厅 文 件 桂 政 办 发 2016 52 号 广 西 壮 族 自 治 区 人 民 政 府 办 公 厅 关 于 印 发 广 西 医 疗 卫 生 服 务 体 系 规 划 (2016 2020 年 ) 的 通 知 各 市 县 人 民 政 府, 自 治 区 人 民 政 府 各 组 成 部 门 各 直 属 机 构 : 广 西 医 疗 卫 生 服 务 体 系

More information

103_02.xls

103_02.xls 103 學 年 度 大 學 考 試 入 學 分 發 各 系 組 最 低 錄 取 分 數 及 錄 取 人 數 一 覽 表 0001 國 立 臺 灣 大 學 中 國 文 學 系 國 文 x1.50 英 文 x1.25 數 學 乙 x1.00 歷 史 x1.25 地 理 x1.00 32 493.40 **** ----- ----- ----- 0002 國 立 臺 灣 大 學 外 國 語 文 學 系

More information

<313032A655A874B2D5B3CCA743BFFDA8FABCD0B7C7AAED2E786C73>

<313032A655A874B2D5B3CCA743BFFDA8FABCD0B7C7AAED2E786C73> 102 學 年 度 大 學 考 試 入 學 分 發 各 系 組 最 低 錄 取 分 數 及 錄 取 人 數 一 覽 表 校 系 0001 國 立 臺 灣 大 學 中 國 文 學 系 國 文 x1.50 英 文 x1.25 數 學 乙 x1.00 歷 史 x1.25 地 理 x1.00 30 491.85 **** 614.02 ----- ----- 0002 國 立 臺 灣 大 學 外 國 語 文

More information

柳州历史上的今天内文改版式.FIT)

柳州历史上的今天内文改版式.FIT) 1 月 1 日 1 月 1 月 1 日 1929 年 1 月 1 日 广 西 省 第 一 次 建 设 会 议 在 柳 召 开 新 年 伊 始, 新 桂 系 执 政 后 召 开 第 一 次 全 省 建 设 会 议, 开 幕 式 在 柳 州 羊 角 山 广 西 实 业 院 内 举 行, 会 期 10 天 省 政 府 各 部 门 负 责 人 名 流 专 家 学 者 等 93 人 参 加 会 议 国 内 著

More information

生 產 準 備 您 接 近 生 產 之 注 意 事 項 : 備 妥 住 院 用 物, 勿 遠 行 ( 生 產 用 物 包 ) 最 好 有 人 在 家 陪 伴, 或 和 陪 產 者 保 持 連 繫, 有 任 何 狀 況 可 立 即 趕 到 可 做 家 事 散 步 蹲 下 等 運 動, 以 不 太 累

生 產 準 備 您 接 近 生 產 之 注 意 事 項 : 備 妥 住 院 用 物, 勿 遠 行 ( 生 產 用 物 包 ) 最 好 有 人 在 家 陪 伴, 或 和 陪 產 者 保 持 連 繫, 有 任 何 狀 況 可 立 即 趕 到 可 做 家 事 散 步 蹲 下 等 運 動, 以 不 太 累 主題 主題 (1)準媽咪之待產準備及產後保養 (1)準媽咪之待產準備及產後保養 (2)產後如何確保奶水充足 (2)產後如何確保奶水充足 產後病房護理師: 產後病房護理師:黃皖寧 生 產 準 備 您 接 近 生 產 之 注 意 事 項 : 備 妥 住 院 用 物, 勿 遠 行 ( 生 產 用 物 包 ) 最 好 有 人 在 家 陪 伴, 或 和 陪 產 者 保 持 連 繫, 有 任 何 狀 況 可 立

More information

省十二届人大常委会

省十二届人大常委会 省 十 二 届 人 大 常 委 会 第 二 十 六 次 会 议 文 件 (4) 关 于 中 国 ( 广 东 ) 自 由 贸 易 试 验 区 条 例 ( 试 行 草 案 ) 审 议 结 果 的 报 告 2016 年 5 月 24 日 在 广 东 省 第 十 二 届 人 民 代 表 大 会 常 务 委 员 会 第 二 十 六 次 会 议 上 广 东 省 人 大 法 制 委 员 会 副 主 任 委 员 刘

More information

Q8. 公 營 事 業 機 構 之 公 務 員 兼 具 勞 工 身 分 者, 於 97 年 3 月 19 日 以 前, 原 選 擇 參 加 勞 保, 調 任 其 他 公 營 事 業 機 構 時, 應 改 參 加 公 保 所 謂 調 任 其 他 公 營 事 業 機 構 之 判 別 依 據 ( 或 標

Q8. 公 營 事 業 機 構 之 公 務 員 兼 具 勞 工 身 分 者, 於 97 年 3 月 19 日 以 前, 原 選 擇 參 加 勞 保, 調 任 其 他 公 營 事 業 機 構 時, 應 改 參 加 公 保 所 謂 調 任 其 他 公 營 事 業 機 構 之 判 別 依 據 ( 或 標 承 保 業 務 常 見 問 題 加 保 Q1. 公 教 人 員 可 否 依 個 人 意 願 選 擇 參 加 公 保? 否 公 保 係 政 府 為 保 障 公 教 人 員 生 活 而 辦 理 之 社 會 保 險, 屬 強 制 性 保 險, 凡 法 定 機 關 或 公 私 立 學 校 編 制 內 之 有 給 專 任 人 員 應 一 律 參 加 保 險 為 被 保 險 人 Q2. 被 保 險 人 同 時

More information

untitled

untitled 1 08 00 11 30 2 08 00 11 30 14 30 17 30 3 4 5 6 100 10 7 12 83339749 8 9 20 10 87766668 31310 87667731 7 5 15 6 15 8 00 11 30 2 30 5 30 12 83337716 11 12 13 14 15 16 17 18 2002 1 1 2 3 4 1 2 3 4 19 08

More information

学生工作部处2010年工作总结

学生工作部处2010年工作总结 夯 实 基 础, 凝 聚 特 色, 打 造 德 学 理 工 学 生 工 作 部 ( 处 ) 武 装 部 2010 年 工 作 总 结 2010 年 是 实 施 十 一 五 规 划 的 收 官 之 年, 是 我 校 建 校 70 周 年 的 庆 祝 之 年, 是 我 校 圆 满 完 成 工 信 部 组 织 的 高 校 党 建 创 优 工 程 评 估 和 北 京 普 通 高 等 学 校 党 建 和 思

More information

決議、附帶決議及注意事項

決議、附帶決議及注意事項 一 通 案 決 議 部 分 : ( 一 ) 104 年 度 中 央 政 府 總 預 算 釋 股 收 入 380 億 元 不 予 保 留 105 非 本 局 職 掌 業 務 年 度 中 央 政 府 總 預 算 釋 股 收 入 288 億 元 如 下 表, 倘 財 政 狀 況 良 好, 原 則 不 予 出 售 ; 釋 股 對 象 以 政 府 四 大 基 金 為 限, 釋 股 費 用 併 同 調 整 預

More information

天人炁功行入與感應經驗分享

天人炁功行入與感應經驗分享 天 人 炁 功 行 入 與 感 應 經 驗 分 享 天 人 炁 功 行 入 與 感 應 經 驗 分 享 天 人 炁 功 指 導 院 黃 淑 惠 ( 凝 本 ) 劉 建 功 ( 顯 翼 ) 林 瑛 佩 ( 素 擎 ) 黃 淑 惠 : 道 名 凝 本, 隸 屬 天 極 行 宮 劉 建 功 : 道 名 顯 翼, 隸 屬 新 竹 市 初 院 林 瑛 佩 : 道 名 素 擎, 隸 屬 新 竹 市 初 院 497

More information

YYW1.nps

YYW1.nps 第三章 事务文书 事务文书是党政机关 社会团体 企事业单位办理日常事务时广泛使用的一类文书 包括计划 总结 调查报告 工作研究 规章制度 公示等 事务文书的主要特点是行文主体灵活 行文格式无 法定要求 但相对固定 事务文书的种类很多 本章着重介绍计划 总结 调查报告 工作研究和 公示 第一节 计 划 一 例文阅示 例文一 教育部 2008 年工作要点 2008 年教育工作的总体要求是 认真学习贯彻党的十七大精神

More information

穨邱秀玲綜合展望報告.PDF

穨邱秀玲綜合展望報告.PDF 91-1 1 86 91 86 91 91 8,214 1 86 91 \ 86 87 88 89 90 91 812 842 901 1,082 1,281 1,576 4,071 4,196 4,465 4,646 5,068 5,276 1,309 1,410 1,533 1,585 1,744 1,796 997 961 1,160 1,339 1,529 1,739 4,613 4,928

More information