数据结构与算法,线性表,矩阵,广义表(3学时)..ppt

数据结构与算法,线性表,矩阵,广义表(3学时)..ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第一部分 数据结构与算法 例如:一个算法具有以下5个重要特性。( ) A.有穷性、确定性、可行性、输入、输出 B.可行性、可移植性、可扩充性、输入、输出 C.确定性、有穷性、稳定性、输入、输出 D.易读性、稳定性、安全性、输入、输出 第二部分 线性表、栈、队列 ? 线性表 例如 编程题 1、有一个带头结点的单链表L={a1,b1,a2,b2,……,an,bn},请设计一个函数将其拆成两个带头结点的单链表A和B,正序链表A={a1,a2,…,an}逆序链表B={bn,bn-1,……,b2,b1}。 注:函数的头部为void split(Linklist *L, LinkList * A, LinkList * B)。 2、假设用单链表方式来存储整数序列,如下形式: 请编写一个递归算法,对这样的链表进行处理,重复结点(值相同的结点)仅保留排在最前面的一个,最后返回新链表的首地址。 拆分+逆置 例:有一个带头结点的单链表L={a1,b1,a2,b2,……,an,bn},请设计一个函数将其拆成两个带头结点的单链表A和B,正序链表A={a1,a2,…,an}逆序链表B={bn,bn-1,……,b2,b1}。 注:函数的头部为void split(Linklist *L, LinkList * A, LinkList * B)。 答:算法思想:扫描单链表L,将奇数位置的元素添加到链表A中,将偶数位置的元素逆向添加到链表B中。 void split(Linklist *L, LinkList * A, LinkList * B) { Linklist *pL=L-next, * pA=A, *pB=B, *temp; while(pL!=NULL) { pA-next=pL; pA=pL; //把奇数位置的结点正向添加到链表A中 pL=pL-next; //pL指向下一个结点 pA-next=NULL;(注意这两句顺序不能颠倒) temp=pL-next; //把PL的下一个结点的地址先保存下来 pL-next=pB-next; //把偶数位置的结点逆向添加到链表B中 pB-next=pL; (注意:实际上是链表逆置的主要操作) pL=temp; } } 删除重复元素 例:假设用单链表方式来存储整数序列,如下形式: 请编写一个递归算法,对这样的链表进行处理,重复结点(值相同的结点)仅保留排在最前面的一个,最后返回新链表的首地址。例如,若有上述链表,则处理后的新链表如下: 非递归算法: void IterDeleteNode (LNode *L) { // 删除以单链表L中所有值相同的结点 LNode *p=L, *q, *ptr; while ( p!=NULL) // 检查链表中所有结点 { q=p, ptr=p–next; // 检查结点p的所有后继结点ptr while (ptr!=NULL) { if (ptr–data= =p-data) { q-next=ptr-next; free(ptr); ptr=q-next; } else { q=ptr; ptr=ptr–next; } } p=p-next ; } } 栈 栈 栈 二维数组采用顺序存储结构,有行优先和列优先之分。 * * 抽象数据类型: “抽象”的意思,是指我们描述数据类型的方法是不依赖于具体实现的, 即数据对象集和操作集的描述与存放数据的机器无关、与数据存储的物理结构无关、与实现操作的算法和编程语言均无关。 简而言之,抽象数据类型只描述数据对象集和相关操作集“是什么”,并不涉及“如何做到”的问题。 * 什么是数据结构? 定义1--是相互之间存在一种或多种特定关系的数据元素的集合。 定义2---- 按某种逻辑关系组织起来的一批数据(或称带结构的数据元素的集合)应用计算机语言并按一定的存储方式把它们存储在计算机的存储器中,并在其上定义了一个运算的集合。 例如:数据的物理结构包括 的表示和 的表示。 答案:数据元素 , 数据元素间关系 。 逻辑结构--数据元素间的相互关系。 存储结构(物理结构)---数据元素及其关系(数据的逻辑结构)在计算机存储器中的存储形式。 逻辑结构---划分方法一 (1)线性结构( 如:线性表、栈、队列、串) (2)非线性结构(如:树

文档评论(0)

586334000 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档