计算机软件技术基础 知识点,计算机软件技术基础学习知识点学习储备.docx

本文详细介绍了数据结构中的线性表,包括顺序存储结构和链式存储结构,以及栈和队列的概念。重点讨论了顺序表的插入和删除异常处理,以及单链表和循环链表的插入与删除函数实现。这些是算法设计与分析的基础,对于理解数据结构的运作至关重要。
摘要由CSDN通过智能技术生成

计算机软件技术基础知识点储

第一章:概述

1 、程序 = 算法 + 数据结构

2 、算法的几个基本特征:能行性确定性有穷性拥有足够的情报

3 、算法的复杂度主要包括:时间复杂度和空间复杂度

第二章:数据结构

、逻辑结构:数据集合中各数据元素之间所固有的逻辑关系(集合结构、线性结构、树形结构、图状结构),可以看作是从具体问题抽象出来的数据模型。

、物理(存储)结构:在对数据进行处理时,各数据元素在计算机中的存储关系,可分为以下四种:顺序存储结构(存储空间连续)、链式存储结构、索引结构、散列结构

、数据结构的运算是指对数据结构中的结点进行操作的集合,包括插入、删除、更新、检索、排序等。

、数据元素是数据的基本单位

、有时数据元素可由若干个数据项(数据的属性)组成,在这种情况下,数据项组成的数据元素称为记录,数据项是具有独立含义的最小标识单位,不可分割

、顺序存储结构:通常定义一维数组来表示线性表的顺序存储空间

、顺序表的插入

异常处理:( m 为线性表的空间大小, n 为线性表的长度 <=m ,插入的位置为

i ,i 表

示在第 i 个元素之前插入)

当存储空间已满(即 n=m )时为上溢错误,不能进行插入,算法结束;

当 i>n

时,认为在最后一个元素之后(即第

n+1 个元素之前)插入;

当 i<1

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

函数的代码实现:

voidinsert( int*v,intm,intn,int i, int b)

{

int k;

if(n==m)cout<

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;

}

}

、顺序表的删除异常处理:

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

⑵当 i<1或 i>n时,认为不存在该元素,不进行删除。

函数的代码实现:

void delete(int *v, int m,int n, int i)

{

intk;

if(n==0)cout<

if((i<1)||(i>n))cout<

for(k=i;k<=n;k++)

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

n=n-1;

}

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

⑴先进后出(后进先出)

⑵栈顶允许插入与删除

⑶栈底不允许插入与删除

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

⑴先进先出

⑵队尾允许插入

⑶对头允许删除

、链式存储每个结点由两部分组成:数据域和指针域

、单链表的插入函数实现

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

voidinsert(int x,int b)

{

node *p,*q;

p=new node;

p->number=b;

if(head==NULL)

{

head=p;

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;

p->next=q->next;

q->next=p;

}

、单链表的删除函数实现

删除包换元素x 的结点

voiddelete(int x)

{

node *p,*q;

”没有要删除的元素!”<

if((head->number)==x)

{

p=head->next;

delete head;

head=p;

}

q= head;

while(((q->next)!=NULL)&&(((q->next)->number)!=x))

q=q->next;

if(q->next==NULL)

cout<<

”没有要删除的元素!

”<

p=q->next;

q->next=p->next;

delete p;

}

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

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

void insert(int x,int b)

{

node*p,*q;

p=new code;

p->number=b;

q=head;

while((q->next!=NULL)&&(((q->next)->numbe)r!=x))

q=q->next;

p->next=q->next;

q->next=p;

}

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

删除包含元素x 的结点

voiddelete(int x)

{

node

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值