苏州科技学院数据结构期末复习2013推荐.doc

苏州科技学院数据结构期末复习2013推荐.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
苏州科技学院数据结构期末复习2013推荐

数据结构期末复习: 一:数据:被计算机识别与处理的数值,字符等符号构成的集合。 数据元素:数据的基本单位,在计算机程序中作为一个整体进行考虑与处理。 数据结构:数据元素集合+数据关系集合。 物理结构:逻辑结构在计算机中的表示与实现。 算法时间的复杂度:T(n)=O(f(n)) 二:线性表: 顺序表:线性表+数组 链表:线性表+动态指针 指针变量:存放别的变量的内存地址变量。 标识变量:P存放X的内存地址,则X是P的标识标量 顺序表求表长: int length(SqList L,List La){   la=listlength(La); return la; } 插入元素操作: Void ListInsert(SqList L,int i,ElemType e){   If(i1||iL.length+1)    ErrorMessage(“i值不合法”); if(L.length=L.listsize) increment(L); q=(L.elem[i-1]);//q为插入位置 for (p=(L.elem[L.length-1]);p=q;--q) *(p+1)=*p; *q=e; ++L.length; } 删除元素操作: void ListDelete(SqList L,int i,ElemType e){ if(i1||iL.length)    ErrorMessage(“i值不合法”); p=(L.elem[i-1]); e=*p; q=L.length-1+L.elem; for(++p;p=q;++p) *(p-1)=*p; --L.length; } 单链表求表长: int Listlength(LinkList L){ p=L;k=0; while(p){ k++;p=P-next; } return k; } 插入操作: void LinkInsert(LinkList L,Lnode *p,Lnode *s){ if(p==L){ s-next=L;L=s; } else{ q=L; while(q-next!=p)q=q-next; q-next=s;s-next=p; } } 删除结点操作: void ListDelete(LinkList L,Lnode *p,ElemType e){ if(p==L){ L=p-next; } else{ q=L; while(q-next!=p)q=q-next; q-next=p-next; } e=p-data;delete p; } 双向链表的插入: void ListInsert(DuLinkList L,DuNode *p,DuNode *s){ s-next=p;s-prior=p-prior; p-prior=s;s-prior-next=s; 或者: p-prior-next=s;p-prior=s; s-next=p;s-prior=p-prior; } 双向链表的删除: void LinkDelete(DuLinkList L,DuNode *p,ElemType e){ e=p-data; p-prior-next=p-next; p-next-prior=p-prior; } 三:排序。 关键码按从大到小或者从小到大重新排列的过程。 稳定排序:数值相同的关键码在排序前后先后位置不变的排序。 关键码:用来比较大小的数据元素。 插入排序: 流程图设计:核心算法: 初始化:参数,线性表,长度。i,j,x,ss[] for(int i=1;in;i++){ int j=i-1;x=ss[i]; while(ss[j]=ss[i]j=0){ ss[j+1]=ss[j]; j-- } ss[j]=x; } for(int j=i-1;x=ss[j];j--){ ss[j+1]=ss[j]; ss[j]=x; } 选择排序: 选择元素与第一个元素比较并交换。 初始化:ss[],i,j,x1,x2,temp; for(i=0;in-1;i++){ x1=i;x2=ss[i]; for(j=i+1;jn;j++){ if(ss[j]ss[i]){ x2=ss[j];x1=j; } } if(x1!=i){ temp=ss[j];ss[j]=ss[i]; ss[i]=temp; } } 基数排序: 初始化:参数,ss[],定义i,j,s0[],s1[],s2[],,,s9[],T[] 分配:for(int i=0;ilength;i++){ int x=ss

文档评论(0)

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

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

1亿VIP精品文档

相关文档