哈工大数据结构1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.线性表的特性 4. 线性表的运算 3. 顺序表的描述(静态) 将 an---ai 之间的结点依次后移,为新结点让出第 i 个位置。 将新结点 x 插入到第 i 个位置。 若 i=n+1, 则将 x 插入到表尾。 修改last,使之仍指向最后一个元素。 相当于修改了表长。 按等概率考虑: 可能插入的位置为 i=1,2,……n,n+1 共 n+1 个, 则 pi=1/(n+1) 所以: 得出: 顺序表插入算法平均约需移动一半结点。 时间复杂度为O(n) (线性阶) 。 若i=n,只需删除终端结点,不用移动结点。 当1=in时,将ai+1---an之间的结点依次向前移动。 (共需移动 n-i 个结点)。 修改 last 指针(相当于修改表长)使之仍指向最后一个 结点。 与插入运算相同,时间主要消耗在移动表中结点上。删除 第 i 个结点,其后面的结点 ai+1---an 都要向前移动一个位置,共 移动 n-i 个结点。 若 i=1, 最坏:O(n) 若 i=n, 无需移动结点,直接删除即可。最好:O(1) 按等概率考虑: 可能删除的位置为 i=1,2,……n 共 n 个,则 pi=1/n 所以: (2)顺序表的插入(动态分配顺序存储结构) 找x在表中的位置,若查找成功,返回x元素第一次出现在表 中的位序,否则返回-1 int Locate-sq ( SeqList *L, ListData x ) { int i = 1; //按序列下标 while ( i = L.length L.data[i-1] != x ) i++; if ( i = L.length ) return i; else return -1; } 在表中提取第 i (1≤ i个≤n)元素的值 ListData GetData ( SeqList L, int i ) { if ( i = 0 i L.length ) return L.data[i-1]; else printf ( “参数 i 不合理!\n” ); } (1) 集合的“并”运算 p=(node*)malloc(sizeof(node)) [=(linklist)malloc(sizeof(node)) ] 对指针 p 赋值使其指向某一新结点 (按需生成一个node结点类型的新结点,动态申请空间) 其中: (node*) 进行类型转换。 sizeof(node) 求结点需占用的字节数。 malloc(size) 在内存中分配 size 个连续可用字节的空间 算法思想: 将新结点插入到当前链表的表尾上。 可增加一个尾指针 r ,使其始终指向链表的尾结点。 增加头结点: 头结点的数据域:可有可无 头结点的指针域:为指向第一个结点的指针。 设单链表的长度为 n ,要查找表中第 i 个结点。 算法思想: 从头结点开始顺链扫描。 用指针 p 指向当前扫描到的结点。 用 j 作统计已扫描结点数的计数器。 p 的初值指向头结点,j 的初值为 0 。 当 p 扫描下一个结点时,j 自动加 1 。 当 j=i时,指针 p 所指的结点就是第 i 个结点。 node * searchlist1( linklist L, int i ) // L接收已存在的链表的头指针 // i 接收要查找的结点的位置 { node *p; int j=0; p=L; while( p-next!=NULL ji ) { p=p-next; j++; } if(j= =i) return p; else return NULL; } 算法描述: 设 指针 p 指向单链表的某一结点。 设 指针 s 指向等待插入的、值为 x 的新结点。 实现方法(两种): ①后插:将新结点 *s 插在结点 *p 之后。 ②前插:将新结点 *s 插在结点 *p 之前。 算法思想: 取一新结点,将其数据域置为新结点,再修改有关结点的 链域: 把原 p 结点的直接后继结点作为 s 结点的直接后继; s 结点作为 p 结点的直接后继。

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档