课后题:数据结构

第一章P10:

一、填空题

1.数据的逻辑结构是数据元素之间的逻辑关系,通常有下列4类:集合、线性结构、树结构、图结构。

2.数据的存储结构是数据在计算机存储器里的表示,主要有4种基本存储方法:顺序存储、链接存储、索引存储、散列存储。

二、选择题

1.一个算法必须在执行有穷步之后结束,这是算法的(有穷性)。

2.算法的每一步必须有确切的定义。也就是说,对于每一步需要执行的动作必须严格、清楚地给出规定。这是算法的(确定性)

3.算法原则上都是能够由机器或人完成的。整个算法好像是一个解决问题的”工作序列“,其中的每一步都是我们力所能及的一个动作。这是算法的(可行性)

4.在数据结构中,从逻辑上可以把数据结构分为(线性结构和非线性结构)。

四、算法分析题

 第二章P43:

一、3.为什么在单循环链表中设置尾指针比设置头指针更好?

        答:若设置头指针

则寻找尾结点的时间复杂度为O(n),寻找头结点的时间复杂度为O(1).

        若设置尾指针

则寻找尾结点的时间复杂度为O(1),寻找头结点的时间复杂度为O(1)

                                直接为该节点,                                node->next

二、2.“就地”是指辅助空间应为O(1).

第三章P76:

一、1.线性表、栈和队列都是线性结构,可以在线性表的任意位置插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在队尾插入和队头删除元素。

2.栈是一种特殊的线性表,允许插入和删除运算的一端称为栈顶;不允许插入和删除运算的一端称为栈底

3.队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

4.在一个循环队列中,队首指针指向队首元素的当前位置。

5.在具有n个单元的循环队列中,队满时共有n-1个元素。

6.向栈中压入元素的操作是先存入元素,后修改栈顶指针

7.从循环队列中删除一个元素时,其操作是先取出元素,后移动rear指针

8.在操作序列push(1),push(2),pop(),push(5),push(7),pop(),push(6)之后,栈顶元素是6,栈底元素是1.

9.在操作序列enqueue(1),enqueue(2),dequeue(),enqueue(5),enqueue(7),denqueue(),enqueue(9)之后,队头元素是5,队尾元素是9.

10.用单链表表示的链式队列的队头是在链表的表头位置。

二、1.栈中元素的进出原则是(先进后出或后进先出)

2.若一直一个栈的入栈序列是1,2,3,...,n,其输出序列为p1,p2,p3,...,pn,若p1=n,则pi为(n-i+1)

3.如果入栈是元素先入栈,然后ST->top++,则判定一个栈ST(最多元素为m0)为空的条件是(ST->top==0)

4.当利用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则向这个栈插入一个元素时,首先应执行(top--)

5.假定一个链栈的栈顶指针用top表示,当p所指向的结点进栈时,执行的操作是

(p->next=top;top=p;)

6.判定一个队列QU(最多元素为m0)为满的条件是(QU->rear-QU->front+1==m0)

7.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,则计算队列中元素的公式为()

如有冒犯,请评论。将会删除

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值