- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构第二章 线性表part5
void purge(List La, List Lb) { // Lb为有序表 InitList(LA); La_len = ListLength(La); Lb_len =ListLength(Lb); // 求线性表的长度 for (i = 1; i = Lb_len; i++) { } } // purge GetElem(Lb, i, e); // 取Lb中第i个数据元素赋给 e if (ListEmpty(La) || !equal (en, e)) { ListInsert(La, ++La_len, e); en = e; } // La中不存在和 e 相同的数据元素,则插入之 算法时间复杂度:O(n) 链式存储结构的优缺点: ⑴ 插入和删除运算时,无须移动表中元素的位置,只需修改有关结点的指针内容; ⑵ 不能随机访问表中元素,访问时间与元素在表中的位置有关; ⑶ 不需要一块连续的存储空间,只要能存放一个数据元素的空闲结点就可以被利用; ⑷ 表的规模易扩充。 在实际应用中采用哪一种存储结构更合适? 对这个问题不能一概而论,这涉及到不同实现方法的选择问题。一般而言,对存储结构的选择应从以下几条区别: ⑴ 应有利于基本运算的实现。因为运算的具体实现以存储结构的确定为前提,存储结构在一定程度上、一定范围内决定了运算的实现是否方便、高效; ⑵ 应有利于数据的特性。除了数据的逻辑性外,其他的诸如数据规模也应在选择存储结构时加以考虑; ⑶ 应有利于软件环境。数据的存放方式对存储结构有不同的要求,所以应依据情况适当选择存储结构。具体而言,即应主要从存储空间、运算时间、程序设计语言三方面考虑。即 ① 存储空间 顺序表要求预先分配存储空间,一般在程序执行之前是难以估计存储空间大小,估计过大会造成浪费,估计过小又会产生空间溢出。而链式存储结构的存储空间是动态分配,只要内存空间有空间,就可动态申请内存空间,不会产生溢出。对于存储空间的考虑也可以存储密度的大小来衡量。其中存储密度的大小定义为一个结点数据本身所占用的存储量与结点结构所占用的存储量的比值。一般地,存储密度越大,存储空间的利用率就越高。显然,顺序表的存储密度为1,而链式存储结构的存储密度则小于1。 ② 运算时间 顺序存储结构是一种随机存取的结构,便于元素的随机访问。即表中任一元素都可在O(1)时间复杂度情况下迅速而直接地存取。而链式存储结构,必须从头指针开始顺着链扫描才能取得,一般情况下其时间复杂度为O(n),所以对于那些只进行查找运算而很少做插入和删除等的运算,宜采用顺序存储结构。但在顺序表中进行元素的插入和删除运算时,需移动大量元素,平均要移动约半数的元素。尤其是当表中每个元素的信息量较复杂时所花费的时间就更为可观。而采用链式存储结构,由于进行元素的插入或删除,只需修改指针并结合一定的查找。所以,对于那些需要经常频繁地进行元素的插入和删除运算的线性表,其存储结构应采用链式存储结构。 ③ 程序设计语言 这主要是指依据某种高级语言是否提供指针类型或者依据实际需要决定存储结构是选用静态链表还是动态链表。 总之,线性表的顺序实现和链式实现各有优缺点,是无法笼统地认定哪种优,哪种劣。只能根据实际问题的具体实现需要,对各方面的优缺点加以综合平衡来确定适宜的存储结构。 在数学上,一元n次多项式 Pn ( x)= p0 + p1 x+ p2 x2 + …+ pn xn 由n+1个系数唯一确定,可用线性表P来表示 P =(p0 ,p1 , p2 ,…, pn ) 每一项的指数 i 隐含在其系数Pi的序号里。 假设Qm(x)是一元m次多项式,同样可用线性表Q来表示 Q =(q0 ,q1 , q2 ,…, qm ) 设mn,则两个多项式相加的结果 Rn ( x)= Pn ( x)+ Qm(x) 可用线性表R表示 R=( p0+q0 , p1+q1, p2+q2 , …, pm+qm, pm+1, …, pn) 在通常应用中,多项式的次数很高且变化很大,使得顺序存储结
文档评论(0)