计算机软件技术基础知识点储备Word文档格式.docx

上传人:b****0 文档编号:13345697 上传时间:2022-10-09 格式:DOCX 页数:15 大小:31.73KB
下载 相关 举报
计算机软件技术基础知识点储备Word文档格式.docx_第1页
第1页 / 共15页
计算机软件技术基础知识点储备Word文档格式.docx_第2页
第2页 / 共15页
计算机软件技术基础知识点储备Word文档格式.docx_第3页
第3页 / 共15页
计算机软件技术基础知识点储备Word文档格式.docx_第4页
第4页 / 共15页
计算机软件技术基础知识点储备Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

计算机软件技术基础知识点储备Word文档格式.docx

《计算机软件技术基础知识点储备Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机软件技术基础知识点储备Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

计算机软件技术基础知识点储备Word文档格式.docx

n时,认为在最后一个元素之后(即第n+1个元素之前)插入;

3当i<

1时,认为在第1个元素之前插入

函数的代码实现:

voidinsert(int*v,intm,intn,inti,intb)

{

intk;

if(n==m)cout<

<

”出现上溢错误!

”<

endl;

if(i>

n)i=n+1;

if(i<

1)i=1;

for(k=n;

k>

=i;

k--)

v[k]=v[k-1];

v[i-1]=b;

n=n+1;

}

8、顺序表的删除

1当线性表为空(即n=0)时为下溢错误,不能进行删除,算法结束;

2当i<

1或i>

n时,认为不存在该元素,不进行删除。

voiddelete(int*v,intm,intn,inti)

if(n==0)cout<

”出现下溢错误!

if((i<

1)||(i>

n))cout<

”线性表里不存在该元素,不进行删除操作!

for(k=i;

k<

=n;

k++)

v[k-1]=v[k];

n=n-1;

9、栈(相当于一个井)的相关概念

1先进后出(后进先出)

2栈顶允许插入与删除

3栈底不允许插入与删除

10、队列(相对于排队买饭)的相关概念

1先进先出

2队尾允许插入

3对头允许删除

11、链式存储每个结点由两部分组成:

数据域和指针域

12、单链表的插入函数实现

在包含元素x的结点前插入新元素b

voidinsert(intx,intb)

node*p,*q;

p=newnode;

p->

number=b;

if(head==NULL)

head=p;

next=NULL;

if(head->

number==x)

P->

next=head;

Head=p;

q=head;

while((q->

next!

=NULL)&

&

(((q->

next)->

number)!

=x))

q=q->

next;

next=q->

q->

next=p;

13、单链表的删除函数实现

删除包换元素x的结点

voiddelete(intx)

if(head==NULL)cout<

”没有要删除的元素!

if((head->

number)==x)

p=head->

deletehead;

q=head;

while(((q->

next)!

if(q->

next==NULL)cout<

p=q->

next=p->

deletep;

14、循环链表的插入函数实现

p=newcode;

numbe)r!

15、循环链表的删除函数实现

删除包含元素x的结点

next==head)cout<

”没有要删除的元素”<

16、单链表与循环链表的区别

单链表的头指针指向线性表第一个元素的结点;

而循环链表的头指针指向表头结点,表头结点的指针域指向链表的第一个结点。

单链表的最后结点的指针域为空;

而循环链表最后结点的指针域指向表头结点.

17、下三角矩阵的压缩存储

(以行为主压缩)

(以列为主压缩)

18、对称矩阵的压缩

19、索引存储的方式

顺序—索引—顺序、顺序—索引—链接、链接—索引—顺序、链接—索引—链接

20、二叉树的性质

⑴在二叉树的第k层上,最多有2k-1(k≥1)个结点

⑵深度为m的二叉树最多有2m-1个结点(深度即为层数)

⑶在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个

⑷具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分

21、满二叉树是指每层的结点都有两个子结点,满的不行不行的了,完全二叉数是指最后一层必须是从左至右的顺序断了线的,其余层都是满的。

22、前序遍历、中序遍历、后续遍历(前中后对应的是根结点的访问顺序)

前序遍历:

先根结点,再左再右

中序遍历:

先左,再根结点,再右

后续遍历:

先左,再右,再根结点

23、若给出三种遍历中的任意两种遍历,要求写出第三种遍历,思路如下:

先正确画出对应的二叉树,根据已给条件进行验证,最后写出第三种遍历

24、三种遍历的程序实现

⑴前序遍历

voidqian_ma()

node*p;

p=BT;

pre(p);

cout<

staticqian(node*p)

if(p!

=NULL)

number<

””;

qian(p->

lchild);

rchild);

⑵中序遍历

voidzhong_ma()

zhong(p);

staticzhong(node*p)

if(p!

zhong(p->

⑶后续遍历

voidhou_ma()

hou(p);

statichou(node*p)

hou(p->

25、有序树转二叉树最最简便的方法

对于有序树中的每一个结点,保留与其第一个子结点(即最左边的子结点)的链接,断开与其他子结点的链接,且将其他子结点依次链接在第一个子结点的右边。

26、private后边的叫数据成员(私有变量),public后边的叫成员函数,其中函数名与类名完全相同,并且无返回值(void也不能加)的叫构造函数,这个知识点老师说占4分的分值,而且老师还说一打眼就可以看出答案来的,方法我都告诉小超了呢。

第三章:

查找与排序

1、无序表只能用顺序查找,有序表可用对分查找,分块查找时,各子表的长度可以相等,也可以互相不等,但要求后一个子表中的每一个元素均大于前一个子表中的所有元素。

2、查找效率比较:

顺序查找<

分块查找<

对分查找<

哈希表查找

3、有序表的插入函数

voidinsert(int*v,intm,intn,intx)

k=n-1;

while(v[k]>

x)

v[k+1]=v[k];

k=k-1;

v[k+1]=x;

4、有序表的删除函数

5、有序表的对分查找函数

intsearch(intx,intn)

inti,j,k;

i=1;

j=n;

while(i<

=j)

k=(i+j)/2;

if(v[k-1]==x)cout<

v[k-1];

return(k-1);

if(v[k-1]>

x)j=k-1;

elsei=k-1;

return(-1);

6、冒泡排序的原理以及程序实现

原理:

相邻两个元素比较大小,要是大,往后移,要是小,不要动,这样每进行一次就可以把最大的那个移到末尾了

程序实现:

voidmaopao(int*s,intn)

inti,j;

inttemp;

for(i=1;

i<

n;

i++)

for(j=0;

j<

n-I;

j++)

if(s[j]>

s[j+1])

temp=s[j];

s[j]=s[j+1];

s[j+1]=temp;

7、快速排序的原理以及程序实现

我明白快速排序了,在考试的时候,老师已经明确说了将第一个元素作为关键字,所以这样的话,将第一个元素设为p(k),并将p(k)的值赋给T,然后设置两个指针i和j分别指向表的起始与最后的位置。

反复作以下两步:

⑴将j逐渐减小,并逐次比较P(j)与T,直到发现一个P(j)<

T为止,将P(j)移到P(i)的位置上。

⑵将i逐渐增大,并逐次比较P(i)与T,直到发现一个P(i)>

T为止,将P(i)移到P(j)的位置上。

上述两个操作交替进行,直到指针i与j指向同一个位置(即i=j)为止,此时将T移到P(i)(即P(j))的位置上。

voidquick(int*p,intn)

intm,i;

int*s;

i=split(p,n);

quick(p,i);

s=p+(i+1);

m=n-(i+1);

quick(s,m);

staticintspilt(int*p,intn)

inti,j,k,l;

intT;

i=0;

j=n-1;

T=p[0];

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 临床医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1