C语言链表ppt课件.ppt

第十一章 链表,1,例跳马。依下图将每一步跳马之后的位置x,y放到一个“结点”里,再用“链子穿起来”,形成一条链,相邻两结点间用一个指针将两者连到一起。,结构的概念与应用,2,依上图有7个结点为了表示这种既有数据又有指针的情况,引入结构这种数据类型。,3,11.7 用指针处理链表,链表是程序设计中一种重要的动态数据结构,它是动态地进行存储分配的一种结构。,动态性体现为 链表中的元素个数可以根据需要增加和减少,不像数组,在声明之后就固定不变; 元素的位置可以变化,即可以从某个位置删除,然后再插入到一个新的地方;,41、链表中的元素称为“结点”,每个结点包括两个域数据域和指针域; 2、单向链表通常由一个头指针(head,用于指向链表头; 3、单向链表有一个尾结点,该结点的指针部分指向一个空结点NULL 。,Head 1249 1356 1475 1021,结点里的指针是存放下一个结点的地址,5,链表中结点的定义,链表是由结点构成的, 关键是定义结点; 链表的结点定义打破了先定义再使用的限制,即可以用自己定义自己; 递归函数的定义也违反了先定义再使用; 这是C语言程序设计上的两大特例,6,链表的基本操作,对链表的基本操作有 (1)创建链表是指,从无到有地建立起一个链表,即往空链表中依次插入若干结点,并保持结点之间的前驱和后继关系。 (2)检索操作是指,按给定的结点索引号或检索条件,查找某个结点。如果找到指定的结点,则称为检索成功;否则,称为检索失败。 (3)插入操作是指,在结点ki-1与ki之间插入一个新的结点k,使线性表的长度增1,且ki-1与ki的逻辑关系发生如下变化 插入前,ki-1是ki的前驱,ki是ki-1的后继;插入后,新插入的结点k成为ki-1的后继、ki的前驱.,7,(4)删除操作是指,删除结点ki,使线性表的长度减1,且ki-1、ki和ki1之间的逻辑关系发生如下变化 删除前,ki是ki1的前驱、ki-1的后继;删除后,ki-1成为ki1的前驱,ki1成为ki-1的后继. 5打印输出,8,一个指针类型的成员既可指向其它类型的结构体数据,也可以指向自己所在的结构体类型的数据,num Score next,next是struct student类型中的一个成员,它又指向struct student类型的数据。 换名话说next存放下一个结点的地址,9,11.7.2 简单链表,define NULL 0 struct student long num; float score; struct student *next; ; main struct student a, b, c, *head, *p; a.num99101; a.score89.5; b. num99103; b.score90; c.num99107 ; c.score85; head ,例11.7,建立和输出一个简单链表,各结点在程序中定义,不是临时开辟的,始终占有内容不放,这种链表称为“静态链表”,10,11.7.3 处理动态链表所需的函数,C 语言使用系统函数动态开辟和释放存储单元,1.malloc 函数,函数原形void *mallocunsigned int size; 作用在内存的动态存储区中分配 一个 长度为size的连续空间。 返回值是一个指向分配域起始地址的指针(基本类型void)。 执行失败返回NULL,11,函数原形void *callocunsigned n,unsigned size; 作用在内存动态区中分配 n个 长度为size的连续空间。 函数返回值指向分配域起始地址的指针 执行失败返回null 主要用途为一维数组开辟动态存储空间。n 为数组元素个数,每个元素长度为size,2. calloc 函数,12,3. free 函数,函数原形 void freevoid *p; 作用释放由 p 指向的内存区。 P是最近一次调用 calloc 或 malloc 函数时返回的值。 free 函数无返回值 动态分配的存储单元在用完后一定要释放,否则内存会因申请空间过多引起资源不足而出现故障。,13,结点的动态分配,ANSI C 的三个函数头文件 malloc.h void *mallocunsigned int size void *callocunsigned n, unsigned size void freevoid *p C 的两个函数 new 类型(初值) delete 指针变量 /* 表示释放数组,可有可无)*/ 使用 new 的优点 可以通过对象的大小直接分配,而不管对象的具体长度是多少(p340 例14.10),14,11.7.4 建立动态链表,基本方法 三个结点(头结点head、尾结点 NULL 和待插入结点 P) 第一步定义头结点head、尾结点 p2 和待插入结点p1,待插入的结点数据部分初始化; 第二步该结点被头结点、尾结点同时指向。P1p2struct student*mallocLEN;头指针部分为空,headNULL; 第三步重复申请待插入结点空间,对该结点的数据部分赋值(或输入值),将该结点插入在最前面,或者最后面(书上在尾部插入). P2-nextP1; P2P1; 最后P2-nextNULL;*head,*p1,*p2,使用mallocLEN,P2-nextNULL;15,11.7.4 建立动态链表,head,P1 p2,1.任务是开辟结点和输入数据 2.并建立前后相链的关系,待插入的结点p1数据部分初始化,该结点被头结点head、尾结点p2同时指向.,16,图11.14head,p2p1head,p2p1,a,b,p1重复申请待插入结点空间,对该结点的数据部分赋值(或输入值),P2-next 指向p1新开辟的结点。,17,图11.14,headp1p2,c,P2指向新结点p2p1,18,图11.15,p2,p1,head,p2,p1,head,a,b,19,图11.16,p2,p1,head,p2,p1,head20,例11.8 建立一个有3名学生数据的单向动态链表,define NULL 0 define LEN sizeofstruct student struct student long num; float score; struct student *next; ; int n; struct student *creatvoid struct student *head; struct student*p1,*p2; n0; p1p2struct student* mallocLEN; scanf“1d,f“结构体类型数据的长度,sizeof是“字节数运算符”,定义指针类型的函数。带回链表的起始地址,开辟长度为LEN的内存区,P1,p2是指向结构体类型数据的指针变量,强行转换成结构体类型,假设头指向空结点,21,续,whilep1-num0 nn1; /*n 是结点的个数*/ ifn1headp1; else p2-nextp1; p2p1; p1struct student*mallocLEN; scanf“1d,f“, 返回链表的头指针,算法p1指向新开的结点 p1stuct student*mallocLEN; p1的所指向的结点连接在p2所指向结点后面,用p2-nextp1来实现。 p2 指向链表中最后建立的结点, p2p1;,头指针指向p1结点,P1开辟的新结点链到了p2的后面,P1继续开辟新结点,给新结点赋值此,22,11.7.5 输出链表,链表遍历 1.单向链表总是从头结点开始的; 2.每访问一个结点,就将当前指针向该结点的下一个结点移动 pp-next; 3.直至下一结点为空 PNULL,23,图 11.18headp,P,P,24,例题 9,void print struct student *head struct student * p; printf“nNow,These d records aren“,n; phead; ifheadNULL do printf“ld 5.lfn“,p - num,p - score; pp - next; whilepNULL; ,25,11.7.6 对链表的删除操作,删除结点原则 不改变原来的排列顺序,只是从链表中分离开来,撤消原来的链接关系。 两种情况 1、要删的结点是头指针所指的结点则直接操作; 2、不是头结点,要依次往下找。 另外要考虑空表和找不到要删除的结点,26,链表中结点删除,需要由两个临时指针 P1 判断指向的结点是不是要删除的结点(用于寻找); P2 始终指向P1的前面一个结点;,27,图11.19a,B,28,图11.20,head,p1,(a),b,head,p2,p1,原链表 P1指向头结点,P2指向p1指向的结点。P1指向下移一个结点。,29,图11.20,head,p1,head,p2,p1c,d,经判断后,第1个结点是要删除的结点,head指向第2个结点,第1个结点脱离。,经P1找到要删除的结点后使之脱离。,30,例 题 10,struct student *del struct student *head, long num struct student *p1, *p2; ifheadNULL printf“nlist nulln“; goto end; p1head; whilenump1-num ,找到了,没找到,31,11.7.7 对链表的插入操作,插入结点将一个结点插入到已有的链表中 插入原则 1、插入操作不应破坏原链接关系 2、插入的结点应该在它该在的位置 实现方法 应该有一个插入位置的查找子过程 共有三种情况 1、插入的结最小 2、插入的结点最大 3、插入的结在中间,32,操 作 分 析,同删除一样,需要几个临时指针 P0 指向待插的结点;初始化p0数组stu; P1 指向要在P1之前插入结点;初始化 p1head; P2 指向要在P2之后插入结点; 插入操作当符合以下条件时p0-num 与 p1-num 比较找位置 ifp0-nump1-num,33,图11.22,head,p1,(a)p0,34,图11.22,p2,p1,b,35,例 题 11,struct student insertstruct student *head,struct student *stud struct student *p0,*p1,*p2; p1head; p0stud; if headNULL; headp0;p0-nextNULL; else while p0-nump1-num ,原来的链表是空表,P0指向要插的结点,使p0指向的结点作为头结点,使p2指向刚才p1指向的结点,插到原来第一个结点之前,插到p2指向的结点之后,插到最后的结点之后链接,36head,课堂举例已有一个如图所示的链表; 它是按结点中的整数域从小到大排序的,现在要插入一个结点,该结点中的数为10,待插入结点,此结点已插入链表,37,分析按三种情况 1、第一种情况,链表还未建成(空链表),待插入结点p实际上是第一个结点。这时必然有headnull。只要让头指针指向 p 就可以了。语句为,head p,head p; p-next null;,2、第二种情况,链表已建成,待插入结点 p 的数据要比头结点的数据还要小,这时有 p-num num 当然p结点要插在head结点前。,38head,head,p,p-nexthead; headp;,语句为,null,39,3、第三种情况,链表已建成,待插入结点 p 的数据比头结点的数据大,需要找到正确的插入位置。这时,可以借助两个结构指针r 和 g,利用循环比较来找到正确位置。然后将结点 p 插入到链表中正确的位置。 参见下面的图示,40head,p,g,r,说明这种情况下,p 结点已经与链表的第一个结点比较过了,所以从链表的下一个结点开始比较。138,继续比较。41head,p,g,r,说明1312,继续比较。42head,p,g,r,null说明1315,找到了正确的插入位置,则插入结点 p;语句为,rnext p; p-next g;,43, 结构7.c include 预编译命令 include 内存空间分配 define null 0 定义空指针常量 define LEN sizeofstruct numST 定义常量,表示结构长度 struct numST 结构声明 int num; 整型数 struct numST *next; numST结构指针 ;,参考程序,44, 被调用函数insert,两个形参分别表示链表和待插入的结点 void insert struct numST phead, struct numST *p 函数体开始 struct numST *q,*r; 定义结构指针q,r if *pheadnull 第一种情况,链表为空 *phead p; 链表头指向p return; 完成插入操作,返回 else 链表不为空 第二种情况,p结点num值小于链表头结点的num值 if *phead-num p-num 将p结点插到链表头部 p-next *phead; 将p的next指针指向链表头*phead *phead p; 将链表头赋值为p return; 返回 ,45, 第三种情况,循环查找正确位置 r *phead; r赋值为链表头 q *phead-next; q赋值为链表的下一个结点 while qnull 利用循环查找正确位置 判断当前结点num是否小于p结点的num if q-num num r q; r赋值为q,即指向q所指的结点 q q-next; q指向链表中相邻的下一个结点 else 找到了正确的位置 break; 退出循环 将p结点插入正确的位置 r-next p; p-next q; ,46, 被调用函数,形参为ST结构指针,用于输出链表内容 void printstruct numST *head int k0; 整型变量,用于计数 struct numST * r; 声明r为ST结构指针 rhead; r赋值为head,即指向链表头 whiler null 当型循环,链表指针不为空则继续 循环体开始 kk1; 计数加1 printf“d dn“,k,r-num; rr-next; 取链表中相邻的下一个结点 循环体结束 ,47,void main 主函数开始 函数体开始 struct numST *head, *p; ST型结构指针 head null; 分配两个ST结构的内存空间,用于构造链表 head struct numST * mallocLEN; head-next struct numST * mallocLEN; 为链表中的两个结点中的num赋值为5和10 head-num 5; head-next-num 10; head-next-next null; 链表尾赋值为空 构造一个结点p,用于插入链表 p struct numST * mallocLEN; p-num 8; p-next null; insert 调用print函数,输出链表内容 主函数结束,48,说明函数insert的第一个形参为struct numST类型,即“指针的指针”。调用时送入的实参是链表头指针的地址,即程序中的 char name10; char sex; char job; union int class; char position10; category; person2; main int n,i; fori0;i2 ;i; scanf“d,s,c,c”, ,55,ifpersoni.jobs scanf“d“, ,续,56,枚举类型 构造类型之三,57,11.9 枚举类型,枚举类型是指能将类型所包含的值一一列举出来。枚举值称为枚举常量 定义枚举类型的关键字是 enum。其类型的定义以及变量的声明同结构类型和联合类型;,声明格式 enum weekdaysum,mon,tue,wed,thu,fri,sat; 定义变量 enum weekday workday,week_end;,58,关于枚举类型变量,在C 编译中,对枚举元素按常量处理; 对枚举型变量的赋值(枚举型变量的取值)只能取该变量所属枚举类型的枚举常量值; 一个整数不能直接赋给一个枚举变量。进行强制性转换;,59,说 明 (1)枚举型仅适应于取值有限的数据。 例如,根据现行的历法规定,周天,年个月。 (2)取值表中的值称为枚举元素,其含义由程序解释。 例如,不是因为写成“Sun”就自动代表“星期天”。事实上, 枚举元素用什么表示都可以。 (3)枚举元素作为常量是有值的定义时的顺序号(从开始),所以枚举元素可以进行比较,比较规则是序号大者为大 例如,上例中的Sun0、Mon1Sat6,所以MonSun、Sat最大。 (4)枚举元素的值也是可以人为改变的在定义时由程序指定。 例如,如果enum weekdays Sun, Mon ,Tue, Wed, Thu, Fri, Sat;则Sun,Mon,从Tue2开始,依次增。,60,例 题 13,/*file1.c文件1*/ main extern enter-stringchar str80; extern delete-stringchar str,char ch; extern print-stringchar str; char c; char str80; enter_stringstr; scanf“c“61,续,fori0;i2;i ifpersoni.jobs printf“-6d -10s -3c -3c -6dn“,personi.num,personi.name,personi. sex,personi.job,personi.category.class; else printf“-6d -10s -3c -3c -6sn“,personi.num,personi.name,personi. sex,personi.job,personi.category.position; ,62,11.10 用typedef 为类型定义新名字,除可直接使用提供的标准类型和自定义的类型(结构、共用、枚举)外,也可使用typedef定义已有类型的别名。该别名与标准类型名一样,可用来定义相应的变量。 定义已有类型别名的方法如下 (1)按定义变量的方法,写出定义体; (2)将变量名换成别名; (3)在定义体最前面加上typedef。,63,11.10 用typeded 为类型定义新名字,任何已有的类型可以重新命名 typedef long integer; 将 long 重新命名为 integer,使得 integer 和 long 同等使用 可以和新类型定义一起定义名字 typedef int ARR10 ; 定义了一个数组名 ARR,它是具有10个元素的整型数组类型 typedef struct int num; float score; S; /*定义结构体别名为S*/ STUDENT stu1;,64,讨论typedef 和 define,说明 (1)用typedef只是给已有类型增加个别名,并不能创造个新的类型。就如同人一样,除学名外,可以再取一个小名(或雅号),但并不能创造出另一个人来。 (2)typedef与define有相似之处,但二者是不同的前者是由编译器在编译时处理的;后者是由编译预处理器在编译预处理时处理的,而且只能作简单的字符串替换。,65struct TM int x,y; 结构TM的成员,x,y为整数型 struct TM next 结构TM的成员,属TM型 ,下面的表是马的跳步方案,从左下角跳到右上角,结构体与共体例子,66NULL为空地址 下面是形成链表的一个参考程序, 整型变量x,y struct TM next; 指向TM结构的指针 ; void main 主函数 主函数开始 int i; 声明整型变量 声明TM结构n1n7,结构指针head,p struct TM n1,n2,n3,n4,n5,n6,n7, head, p;,68, 分别对TM结构n1n7中的x,y赋值 n1.x0;n1.y0; n2.x1;n2.y2; n3.x2;n3.y4; n4.x4;n4.y4; n5.x6;n5.y4; n6.x7;n6.y2; n7.x8;n7.y4; head赋值为n1,即head指向n1 head, n1n7构成链表 n1.next,69,phead; p赋值为head,即p指向head所指的内容 i1; i赋值为1 do 直到型循环 循环体开始 输出结点信息 printf“结点d xd, ydn“,i,p-x,p-y; pp-next; p指向下一个结点 ii1; 计数加1 whilepnull; 未到达链表尾部,则继续循环 主函数结束,70,用结构数组,利用键盘输入结点中的数据。重点看 scanf“d”, 结构数组,数组中的元素为结构类型的数据,如n8, 结构2.c include 预编译命令 define null 0 定义空指针常量 struct TM 定义TM结构 int x,y; 整型变量x,y struct TM *next; 指向TM结构的指针 ;,71,void main 主函数 主函数开始 int i,a,b; 声明整型变量i,a,b 声明TM型结构数组n8,TM结构指针head,p struct TM n8,*head,*p; fori1;i7;ii1 循环 循环体开始 printf“输入nd的xn“,i; 提示输入第i个结构的x值 scanf“d“, 将b的值赋给结构ni的元素y 循环体结束,72,head 未到链表尾部,则继续循环 主函数结束,73,下面的程序与上面的程序区别仅在 scanf“d” 结构3.c include 预编译命令 define null 0 定义空指针常量 struct TM 定义TM结构 int x,y; 整型变量x,y struct TM *next; 指向TM结构的指针 ;,74,void main 主函数 主函数开始 int i,a,b; 声明整型变量i,a,b 声明TM型结构数组n8,TM结构指针head,p struct TM n8,*head,*p; fori1;i7;ii1 循环 循环体开始 printf“输入nd的xn“,i; 提示输入第i个结构的x值 scanf“d“, 输入ni.y 循环体结束,75,head 未到达链表尾部,则继续循环 主函数结束,76,任 务,我们要作一张登记表,登记排队求职信息,包括姓名、年龄、性别、电话四个参数。希望便于管理,即可以插入和删除,这时可用队列,采用结构类型变量。 struct ST char name20; 字符串,姓名 int age; 整数,年龄 char sex; 字符,性别 long num; 电话号码 struct ST *next; ST结构的指针 ; 注意,这里必须有分号,77,循 环 链 表,78,循环链表,例猴子选大王。 n只猴子围成一圈,顺时针方向从1到n编号。之后从1号开始沿顺时针方向让猴子从1,2m依次报数,凡报到m的猴子,都让其出圈,取消候选资格。然后不停地按顺时针方向逐一让报出m者出圈,最后剩下一个就是猴王。,79,起始位置,猴 王,1,2,3,4,5,6,7,8,3,6,1,5,2,8,4,猴子被淘汰的顺序,演示n8, m3,80,说明 如图1所示有8只猴子围成一圈,m3。从1猴的位置开始,顺时针1至3报数,第一个出圈的是3;第二个出圈的是6,第3个出圈的是1;第4个出圈的是5;第5个是2,第6个是8;第7个是4。最后剩下一个是7,它就是猴王。 我们用循环链表来模拟这个选择过程。,81,1、定义一个名为mon的结构 struct mon int num; 整数,表示猴子的编号 struct mon *next; 指针,指向相邻的下一只猴子 2、将链表的头指针head定义为全局变量。 struct mon*head; 3、主函数 用键盘输入猴子数n,输入数m,调用函数create建立一个循环链表,模拟众猴围成一圈的情况。该函数的实参为n。调用函数select,模拟1至m报数,让n-1只猴子逐一出列的过程。即在具有n个结点的循环链表按报数m删除结点的过程。该函数的实参为m,最后输出猴王的编号。,82,4、建立循环链表的函数createint nn 其中nn为形式参数。要从编号1到编号nn。思路是 (1)先做第1个结点,让其中的数据域p-num赋值为1,让指针域赋值为null。之后让链头指针head指向第1个结点。利用指针q记住这个结点,以便让指针p去生成下面的结点。 (2)利用一个计数循环结构,做出第2个结点到第nn个结点。并将相邻结点一个接一个链接到一起。 (3)最后一个结点要和头结点用下一语句链接到一起 tail q; tail-next head;headtailq83,5、删结点的函数selectint mm mm为形式参数,从1至m报数,凡报到mm者删除其所在的结点。 设计两个指针p和q。一开始让q指向链表的尾部qtail。让p指向q的下一个结点。开始时让p指向1猴所在的结点。用一个累加器x,初始时x0,从1猴所在结点开始让xx11,如果mm是1的话,1猴所在的p结点就要被删除。有三条语句 printf“被删掉的猴子号为d号n”,p-num; q-next p-next; freep;headtailq,p演示,84,这里freep是释放p结点所占用的内存空间的语句。如果mm不是1而是3,程序会在do-while循环中,让x加两次1,q和p一起移动两次,p指向3所在结点,q指向2所在结点,之后仍然用上述三条语句删去3所在的结点。headqp,q,p,pq演示,85,这个do-while循环的退出条件是qq-next。即当只剩下一个结点时才退出循环。当然猴王非其莫属了。这时,让头指针head指向q,head是全局变量,在主程序最后输出猴王时要用head-num。,参考程序如下,head,q86,include 预编译命令 include 内存空间分配 define null 0 定义空指针常量 定义常量,表示结构长度 define LEN sizeofstruct mon struct mon 结构声明 int num; 整型数,用于记录猴子号 struct mon *next; mon结构指针 ; struct mon *head, *tail; mon结构指针,全局变量,87,void createint nn 被调用函数 函数体开始 int i; 整型变量i,用于计数 struct mon *p,*q; 声明mon结构指针p,q 为p分配内存空间 pstruct mon * mallocLEN; p-num1; 初始化p结点num域为1 p-nextnull; 初始化p结点next域为空 headp; 链表头指针head赋值为p qp; q赋值为p,88,fori2;inumi; 初始化p结点num域为i,表示猴子号 q-nextp; 将p结点加到链表尾部 qp; 让q指向链表尾部结点 p-nextnull; 链表尾部指向空 循环体结束 tail q; 链表尾 tail-nexthead; 链表尾部指向链表头, 形成循环链表 函数体结束,89, 被调用函数select,mm表示结点删除间隔 void selectint mm 函数体开始 int x0; 声明整型值x,并初始化为0 struct mon *p,*q; 声明结构指针p,q qtail; q赋值为tail,指向循环链表尾部 do 直到型循环,用于循环删除指定间隔的结点 循环体开始 pq-next; p赋值为q相邻的下一个结点 xx1; x加1 ifx mm0 x是否整除mm, 表示是否跳过指定间隔 输出被删掉的猴子号 printf“被删掉的猴子号为d号n“,p-num; q-nextp-next; 删除此结点 freep; 释放空间 else qp; q指向相邻的下一个结点p whileqq-next; 剩余结点数不为1,则继续循环 head q; head指向结点q,q为链表中剩余一个结点 函数体结束,90,void main 主函数开始 函数体开始 int n,m; 声明整型变量n,m head null; 初始化head为空 printf“请输入猴子数n“; 提示信息 scanf“d“, 输出猴王 函数体结束,91,

c语言链表ppt,C语言链表ppt课件.ppt相关推荐

  1. 计算机网络安全 鲁立,计算机网络安全教学课件ppt作者鲁立08课件.ppt

    计算机网络安全教学课件ppt作者鲁立08课件.ppt 第8章 入侵检测系统 本章要点 ? 入侵检测系统模型.工作过程. ? 入侵检测系统分类和工作原理. ? 基于主机的入侵检测系统和基于网络的入侵检测 ...

  2. c语言程序设计 函数说课,《C语言程序设计》之函数说课课件.ppt

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspC/C++资料 <C语言程序设计>之函数说课课件.p ...

  3. 计算机硬件设备介绍 ppt,计算机硬件设备的认识课件.ppt

    <计算机硬件设备的认识课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机硬件设备的认识课件.ppt>文档请在天天文库搜索. 1.计算机组 ...

  4. 计算机四级准考证ppt,计算机等级考试四级课件PPT.ppt

    计算机等级考试四级课件PPT.ppt 四级网络技术 第一单元 网络规划与设计 第一章 网络系统结构与设计的基本原则 第一章 网络系统结构与设计的基本原则 1.1 基础知识 1.1.1 计算机网络的分类 ...

  5. 计算机控制实验ppt模板,计算机控制技术实验课件.ppt

    计算机控制技术实验课件.ppt 计算机控制技术实验课件,易杰,目录,实验一模数.数模转换实验实验二多路模拟信号AD.DA转换实验实验三采样实验实验四保持器实验实验五积分分离PID控制实验,实验一模数. ...

  6. 计算机结构原理与组成ppt,计算机组成原理与系统结构课件.ppt

    <计算机组成原理与系统结构课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机组成原理与系统结构课件.ppt>文档请在天天文库搜索. 1. ...

  7. 计算机控制系统的类型的ppt,计算机控制系统及应用课件.ppt

    <计算机控制系统及应用课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机控制系统及应用课件.ppt>文档请在天天文库搜索. 1.2.5 ...

  8. 计算机中ppt,计算机中信息表示课件.ppt

    <计算机中信息表示课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机中信息表示课件.ppt>文档请在天天文库搜索. 1.第二章 计算机中 ...

  9. 计算机在化学化工中的应用ppt绪论,化学反应工程-绪论课件.ppt

    化学反应工程-绪论课件.ppt 1.原料的预处理 2.进行化学反应 3.反应产物的分离与提纯 第一.三两步属于单元操作,是化工原理内容,处于从属地位.,第二步为整个加工过程的核心,是化学反应工程学科的 ...

  10. 计算机三级网络技术ppt介绍,计算机三级网络技术课件.ppt

    计算机三级网络技术课件,计算机网络技术课件,计算机三级网络技术吧,计算机网络课件,计算机网络ppt课件,计算机网络基础课件,认识计算机网络课件,计算机网络安全课件,计算机控制技术课件,计算机网络谢希仁 ...

最新文章

  1. 页面加载完毕_【前端面试】dom 的解析,加载,渲染
  2. 00设计模式——指导规则
  3. python字符串find函数-python常见字符串处理函数与用法汇总
  4. Serverless的4种错误打开方式
  5. webRTC+coturn穿透服务器的安装与搭建
  6. jq ajax提交评论,织梦评论怎么改成自己的jq ajax评论
  7. 20180802总结
  8. 什么是向量中断,什么是中断向量?
  9. CF113D 高斯消元、dp
  10. Asp.Net将Excel数据导入Sql Server数据库的的例子
  11. (笔记)MySQL 之 Metadata Locking 研究(5.5版本)
  12. 百度云安装WordPress,提示数据库连接错误!
  13. word多级标题的使用
  14. 使用C语言实现静态链表
  15. 开启 Kerberos 安全的大数据环境中,Yarn Container 启动失败导致作业失败
  16. SSM框架练手项目【虎牙个人博客】手把手带你搭建自己的个人博客
  17. 目前流行的装修风格_现在最流行的装修风格是什么 装修风格流行趋势是什么...
  18. java: -source 1.6 中不支持 diamond 运算符, (请使用 -source 7 或更高版本以启用 diamond 运算符)
  19. C4D中使用Redshift渲染器翻转贴图
  20. 豆瓣网书影音页面制作(父子组件,拼音查询中文)

热门文章

  1. 少儿Python编程_第十八讲 搭建网站
  2. linux装系统基本分区,Linux基础——系统分区
  3. flex vue 垂直居中居上_vue 弹性布局 实现长图垂直居上,短图垂直居中
  4. SQL中SCOPE_IDENTITY()函数用法
  5. java计算机毕业设计网上书城网站源代码+数据库+系统+lw文档
  6. vue的v-model的双向数据绑定原理
  7. 将数组转换成字符串的方法
  8. 大学毕业论文字数有上限吗,我写了一万六千字,指导老师让我删掉一万字关键第二天就要交,怎么办?...
  9. Redis集群的关闭、启动、重启等相关指令
  10. 微信整了一个新功能,专治各种借钱不还