数据结构期末大题.复习

一.静态链表的操作

例 :序列(a,b,c,d,e)已存在静态链表如下图a,头指针指向1号结点。请完成:

  1.在静态链表中标出此序列的逻辑关系。

  2.画出依次执行了b前插入f,删除e,c后插入g操作后的新的静态链表图b。

1

1

2

c

2

3

e

3

4

a

4

5

d

5

6

b

6

7

7

图a

图b

二.队列的操作

例:(5分)用下标从0到4的一维数组存储一个循环队列,目前其中有两个元素A、B,状态如图(a)。如果此后有17个数据元素C、D、……P、Q、R、S依次进队列,其间又有16个元素先后出队列,请在图(b)中填写队列最后的状态,包括其中的元素(2分)和指针的位置(3分)。

rear→

R

R

B

Q

front→

Q

front→

A

 P

O

rear→

S

S

(a)

进队列后的元素

(b)

特殊情况处理:1、队列中包含正确元素(QRS)得2分。 2、指针相对于元素位置错1个扣1分。 3、元素和指针整体错位扣1分。

三.计算地址

例:(5分)在一个C语言程序中,有结构类型STUDENT的定义和结构数组allstudents的声明如下:

struct STUDENT

{

  char name[8];

  int number;

}

STUDENT allstudents[10][50];

    allstudents是一个二维数组,它的每个元素都是包含name和number的结构类型。已知在C语言中,二维数组使用以行序为主序的存储结构,char类型占用1字节,int类型占用4字节。

    假定allstudents在内存中的起始存储位置是2000,请写出计算allstudents[i][j]的存储位置的算式(3分),并计算allstudents[3][5]的存储位置(2分)。

allstudents[i][j]的存储位置 = 2000 + (I * 50 + j) * 12

allstudents[3][5]的存储位置 = 2000 + (3 * 50 + 5) * 12 = 3860

特殊情况处理:1、下标从1开始扣1分。 2int类型错为1字节扣1分。

四.矩阵

例:已知一个稀疏矩阵如下:

1.给出它的三元组顺序表表示

2. 给出它逆置后的三元组顺序表

3.给出它的十字链表表示

0     2     0     0     0     0

1     0     0     0     0     0

0     3     0     0     0     0

0     0     0     0     4     0

0     5     0     0     0     6

i

j

v

i

j

v

        A                                                    B

五.树(“中序 后序 先序”)

六.哈夫曼树(带权路径 WPL)

七.哈希函数

八.排序

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值