如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学第1章绪论(xùlùn)目的(mùdì)和要求1.1数据结构(shùjùjiéɡòu)的基本概念1.1.1为什么要学习(xuéxí)数据结构1.1.2什么(shénme)是数据结构1.数据(shùjù)的逻辑结构(1)线性结构(jiégòu)(2)树结构(3)图结构(jiégòu)2.数据的存储(cúnchǔ)结构3.数据(shùjù)操作1.1.3数据类型与抽象数据类型复数(fùshù)抽象数据类型ADTSet{数据:集合中有n(n≥0)个数据元素,元素类型为T操作:booleanisEmpty();//判断集合是否为空intsize();//返回集合的元素个数booleancontains(Tx);//判断集合是否包含元素xbooleanadd(Tx);//增加元素xbooleanremove(Tx);//删除首次出现的元素xvoidclear();//删除集合所有元素voidprint();//输出(shūchū)集合中所有元素booleanequals(Sets);//比较集合是否相等booleancontainsAll(Sets);//判断是否包含s中的所有元素,s是否子集booleanaddAll(Sets);//集合并booleanremoveAll(Sets);//集合差booleanretainAll(Sets);//仅保留那些也包含在集合s中的元素}1.1.6用Java语言描述(miáoshù)数据结构1.2算法(suànfǎ)1.2.1什么(shénme)是算法3.算法(suànfǎ)描述4.算法(suànfǎ)与数据结构1.2.2算法(suànfǎ)分析表1-2时间(shíjiān)复杂度随n变化情况的比较一个简单语句的时间(shíjiān)复杂度为O(1)。intcount=0;一个循环的时间(shíjiān)复杂度为O(n)。intn=8,count=0;for(inti=1;i<=n;i++)count++;时间(shíjiān)复杂度为O(log2n)的循环语句。intn=8,count=0;for(inti=1;i<=n;i*=2)count++;时间(shíjiān)复杂度为O(n2)的二重循环。intn=8,count=0;for(inti=1;i<=n;i++)for(intj=1;j<=n;j++)count++;【例1.1】算法(suànfǎ)时间复杂度分析。1.2.3算法(suànfǎ)设计【例1.3】数组的顺序(shùnxù)查找算法。publicfinalclassIntegerextendsNumberimplementsComparable<Integer>{privatefinalintvalue;publicbooleanequals(Objectobj){//覆盖Object类中方法if(objinstanceofInteger)returnvalue==((Integer)obj).intValue();//比较两个(liǎnɡɡè)Integer对象的值returnfalse;}}③理解数组的动态特性(tèxìng)和引用模型publicstaticvoidswap(Object[]value,inti,intj)//交换下标为i、j的两个数组元素{if(i!=j)//若i、j超出0~value.length-1范围,将抛出(pāochū)数组下标越界异常{Objecttemp=value[j];value[j]=value[i];value[i]=temp;}}publicstaticint[]concat(intx[],inty[])//合并数组x和y中的元素(yuánsù),返回新创建的数组{inti,temp[]=newint[x.length+y.length];for(i=0;i<x.length;i++)temp[i]=x[i];for(intj=0;j<y.length;j++)temp[i+j]=y[j];returntemp;}④理解(lǐjiě)运行时多态性【例1.4】排序(páixù)数组的顺序查找算法。例1.5判断(pànduàn)给定字符串是否为Java关键字。例1.6排序(páixù)算法及其必要性。1.3.1JDK1.3.2MyEclipse要求:掌握编辑、编译、运行JavaApplication程序的基本技能。重点:编辑、编译、运行Java程序。难点:包,MyEclipse的项目、工作(gōngzuò)区,程序调试技术。1.3.1JDK4.包1.3.2MyEclipse2.创建Java项目(xi