数据结构基础知识.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
复习提纲 数据结构概述 基本概念与术语(P3) 数据结构 是一门研究非数值计算程序设计问题中计算机的操作对象以及他们之间的关系和操作的学科. 数据 是用来描述现实世界的数字,字符,图像,声音,以及能够输入到计算机中并能被计算机识别的符号的集合 2.数据元素 是数据的基本单位 3.数据对象 相同性质的数据元素的集合 4.数据结构 三方面内容:数据的逻辑结构.数据的存储结构.数据的操作. (1)数据的逻辑结构 指数据元素之间固有的逻辑关系. (2)数据的存储结构 指数据元素及其关系在计算机内的表示 ( 3 ) 数据的操作 指在数据逻辑结构上定义的操作算法,如插入,删除等. 5.时间复杂度分析 -------------------------------------------------------------------------------------------------------------------- 1、名词解释:数据结构、二元组 2、根据数据元素之间关系的不同,数据的逻辑结构可以分为 集合、线性结构、树形结构和图状结构四种类型。 3、常见的数据存储结构一般有四种类型,它们分别是___顺序存储结构_____、___链式存储结构_____、___索引存储结构_____和___散列存储结构_____。 4、以下程序段的时间复杂度为___O(N2)_____。 int i,j,x; for(i=0;in:i++) n+1 for(j=0;jn;j++) n+1 x+=i; ------------------------------------------------------------------------------------------------------------------ 线性表 顺序表结构 由n(n=0)个具有相同性质的数据元素a1,a2,a3……,an组成typedef int DataType; Typedef struct{ DataType items[MAXSIZE]; Int length; }Sqlist,*LinkList; 单链表 链表结点结构 //链表的节点结构 Typedef struct Node{ int data; struct Node *next; } Lnode,*Pnode,*LinkList; 结点遍历 void TraverseList(LinkList t){ LinkList p; while(t){ p=t; t=t-next free(p); } } 链表操作算法:初始化、插入、输出、删除 void InitList(LinkList *h){ *h=(LinkList)malloc(sizeof(LNode)); if(!h){ print(“初始化错误”); return; } (*h)-next=NULL; } void InsertList(LinkList h,int pos,datatype x){ LinkList p=h,q; int i=0; while(pipos-1){ p=p-next; i++; } if(!p||ipos-1)print(“插入位置出错!!”); InitList(q); q-next=NULL; q-data=x; } void DeleteList(LinkList h,int pos){ LinkList p=h,q; int i=0; while(pipos-1){ p=p-next; i++; } if(!p||ipos-1){cout”删除位置错误”;return;} q=p-next; p-next=q-next; free(q); } ----------------------------------------------------------------------------------------------------------------- 1、线性表中, 第一个元素没有直接前驱,最后一个元素没有直接后驱。 2、在一个单链表中,若p所指结点是q所指结点的前驱结点,则删除结点q的操作语句为 p-next=q-next;free(q);。 3、在长度为N的顺序表中,插入一个新元素平均需要移动表中n/2个元素,删除一个元素平均需要移动(n-1)/2个元素。 4、若线性表的主要操作是在最后一个元素之后插入一个元素或删除最后一个元素,则采用___带头结点的双循环链表__存储结构最节省运算时间。 5、已知顺序表中每个元素占用3个存储单元,第13个元素的存储地址未336,

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档