计算机软件技术基础fifo算法,软件技术基础真题

本文探讨了数据结构中的线性与非线性结构,重点讲解了顺序表的插入和删除操作。在等概率情况下,顺序表插入元素的平均移动次数为n/2,删除为(n-1)/2。此外,介绍了在不同情况下插入和删除元素的具体移动次数。对于单链表,文章详细阐述了如何在特定位置插入和删除节点,以及如何删除链表中值相同的节点。还提供了一个算法,用于在值为x的结点前插入值为y的新结点,并在x不存在时将新结点插入表尾。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、填空

1、数据结构按逻辑结构可分为两大类,它们分别是线性和非线性

2.1、在长为n的顺序存储的线性表中插入和删除元素时所需移动元素的平均次数(等概率情况下)为:Ein=n/2,Ede=(n-1)/2

2.2、顺序表有5个元素,设在任何位置上插入元素是等概率的,则在该表中插入一个元素时所需移动元素的平均次数为(C)

A.3 B.2 C.2.5 D.5

2.3、设顺序表有9个元素,则在第3个元素前插入一个元素所需移动元素的个数为(C)A.9 B.4.5

C.7 D.6

3.1设有指针head指向的带表头结点的单链表,现将指针p指向的结点插入表中,使之成为第一个结点,其操作是(A)(其中,p->next、head->next分别表示p、head所指结点的链域)A.p->next=head->next;head->next=p;

B.p->next=head->next;head=p;

C.p->next=head;head=p;

D.p->next=head;p= head;

3.2、某链表如下所示

f0f1d5f303c3825955077251c2e89977.png

若要删除值为C的结点应做操作P—> link=P—>link—>link

3.3 删除单链一中值相同的结点:下列算法将单链表中值重复的结点删除,使所得的结果表中各结点值均不相同,试完成该算法。

void DelSameNode(LinkList L)//L是带头结点的单链表,删除其中的值重复的结点// { ListNode * p,*q,*r;

p=L->next;//p初始指向开始结点//

while(p)//处理当前结点p//

{ q=p;r=q->next;

do //删除与结点*p的值相同的结点//

{ while(r&&r->data!=p->data)

{ q=r;r=r->next;}

if(r)//结点*r的值与*p的值相同,删除*r//

{q->next=r->next;free(r);r=q->next;}

}

while(r );

p=p->next;

}

}

3.4:在值为x的结点前插入一个值为y的新结点,如x不存在,则把新结点插在表尾的算法。

结构形式:struct node {elemtp data;struct node*next }

void inert(struct node *head,elemtp x,elemtp y)

{s=(struct node *)malloc(sizeof(struc node))

s→data=y

if(head→data ==x)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值