6-3 求链式表的表长 (10 分)

本题要求实现一个函数,求链式表的表长。

函数接口定义:

int Length( List L );

其中List结构定义如下:

typedef struct LNode *PtrToLNode;
struct LNode {
    ElementType Data;
    PtrToLNode Next;
};
typedef PtrToLNode List;

L是给定单链表,函数Length要返回链式表的长度。

裁判测试程序样例:

#include <stdio.h>
#include <stdlib.h>

typedef int ElementType;
typedef struct LNode *PtrToLNode;
struct LNode {
    ElementType Data;
    PtrToLNode Next;
};
typedef PtrToLNode List;

List Read(); /* 细节在此不表 */

int Length( List L );

int main()
{
    List L = Read();
    printf("%d\n", Length(L));
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

1 3 4 5 2 -1

结尾无空行

输出样例:

5

结尾无空行

我的代码:

int Length( List L ){
    int i=0;
    for(List p=L;p!=NULL;p=p->Next)
        i++;
    return i;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
奥鹏南开作业21春学期(1709、1803、1809、1903、1909、2021、2021、2103)《计算机原理》在线作业 CPU不断检测外设状态,当外设准备就绪后,才进行数据传送。这种数据传送方式称为( ) 选项A:无条件传送方式 选项B:查询传送方式 选项C:中断传送方式 选项D:DMA传送方式 正确选项:B 30、下列不同进制的数中,最大的是( ) 选项A:(0.101)2 选项B:(0.62)10 选项C:(0.52)8 选项D:(0.75)16 正确选项:C 6、在计算机系统中征程序和机器运行状态的部件是( ) 选项A:程序计数器 选项B:累加寄存器 选项C:中断寄存器 选项D:程序状态字寄存器 正确选项:D 南开21春学期《计算机原理》在线作业3全文共13页,当前为第1页。 南开21春学期《计算机原理》在线作业3全文共13页,当前为第1页。 30、同步控制方式是( ) 选项A:只适用于CPU 控制的方式 选项B:只适用于外围设备控制的方式 选项C:由统一时序信号控制的方式 选项D:所有指令执行时间都相同的方式 正确选项:C 2、挂接在总线上的多个部件( ) 选项A:只能时向总线发送数据,并只能时从总线上接收数据 选项B:只能时向总线发送数据,但可同时从总线接收数据 选项C:可同时向总线发送数据,并同时从总线接收数据 选项D:可同时向总线发送数据,但只能时从总线接收数据 正确选项:B 在系统总线的数据线上,不可能传输的是( ) 选项A:指令 选项B:操作数 选项C:握手(应答)信号 选项D:中断类型号 正确选项:C 14、显示汉字采用点阵字库,若每个汉字用16×16 的点阵示,7500 个汉字的字库容量是( ) 选项A:72021160KB/s 南开21春学期《计算机原理》在线作业3全文共13页,当前为第2页。选项B:72021B/s 南开21春学期《计算机原理》在线作业3全文共13页,当前为第2页。 选项C:9600KB/s 选项D:192021B/s 正确选项:B 使用DOS功能调用时,子程序编号应放在( )寄存器中。 选项A:AL 选项B:AH 选项C:AX 选项D:任意指定 正确选项:B 23、在三种集中式总线裁决中,( )方式对电路故障最敏感 选项A:链式查询 选项B:计数器定时查询 选项C:独立请 选项D:都一样 正确选项:A 若用存贮芯片(32K×1)构成8086的存贮器系统至少要用( )。 选项A:8片 选项B:16片 选项C:32片 选项D:64片 正确选项:B 南开21春学期《计算机原理》在线作业3全文共13页,当前为第3页。 南开21春学期《计算机原理》在线作业3全文共13页,当前为第3页。 2、既具有SRAM 读写的灵活性和较快的访问速度,又在断电后可不丢失信息的ROM是( ) 选项A:EEPROM 选项B:FLASH 选项C:EPROM 选项D:PROM 正确选项:B 二进制数1001101B的十进制数示为( ) 选项A:4DH 选项B:95D 选项C:77D 选项D:9AD 正确选项:C 7、采用可变操作码的重要原则是( ) 选项A:操作码长度可变 选项B:使用频率高的指令采用短操作码 选项C:使用频率低的指令采用短操作码 选项D:满足整数边界原则 正确选项:B 8、下面对计算机总线的描述中,确切的概念是( ) 选项A:地址信息、数据信息不能同时出现 南开21春学期《计算机原理》在线作业3全文共13页,当前为第4页。选项B:地址信息和控制信息不能同时出现 南开21春学期《计算机原理》在线作业3全文共13页,当前为第4页。 选项C:数据信息和控制信息不能同时出现 选项D:两种信息源的代码不能在总线中同时出现 正确选项:D 1、以下四种类型的半导体存储器中,以传输同样多的字为比较条件,则读出数据传输率最高的是( ) 选项A:DRAM 选项B:SRAM 选项C:FLASH 选项D:EEPROM 正确选项:B 12、使用74LS181 这种器件来构成一个16 位的ALU,需要使用( )片。 选项A:2 选项B:4 选项C:8 选项D:16 正确选项:B 13、在单级中断系统中,CPU 一旦响应中断,则立即关闭( )标志,以防止本次中断任务结束前同级的其他中断源产生另一次中断进行干扰 选项A:中断允许 选项B:中断请 选项C:中断屏蔽 选项D:都不对 南开21春学期《计算机原理》在线作业3全文共13页,当前为第5页。正确选项:A 南开21春学期《计算机原理》在线作业3全文共13页,当前为第5页。 19、I/O 数据不经过CPU 内部寄存器的I/O 方式是( ) 选项A:程序查询方式 选项B:中断方式 选项C:DMA 方式 选项D:上述都可以 正确选项:C 39、CPU 通过(
1.对于二叉排序树,下面的说法( )是正确的。 A.二叉排序树是动态树,查找不成功时插入新结点时,会引起树的重新裂和组合 B.对二叉排序树进行层序遍历可得到有序序列 C.用逐点插入法构造二叉排序树时,若先后插入的关键字有序,二叉排序树的深度最大 D.在二叉排序树中进行查找,关键字的比较次数不超过结点数的1/2 2.在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为( )。 A.O(n) B.O(log2n) C.O(n*log2n) D.O(n2) 3.静态查找与动态查找的根本区别在于( )。 A. 它们的逻辑结构不一样 B. 施加在其上的操作不同 C. 所包含的数据元素类型不一样 D. 存储实现不一样 4.已知一个有序为{12,18,24,35,47,50,62,83,90,115,134},当折半查找值为90的元素时,经过( )次比较后查找成功。 A.2 B.3 C.4 D.5 5.已知数据序列为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树,则该树的深度为( )。 A. 4 B. 5 C. 6 D. 7 6.设散列表长m=14,散列函数H(k)=k mod 11 。中已有15,38,61,84四个元素,如果用线性探测法处理冲突,则元素49的存储地址是( )。 A. 8 B. 3 C. 5 D. 9 7. 平衡二叉树的查找效率呈( )数量级。 A. 常数阶 B. 线性阶 C. 对数阶 D. 平方阶 8. 设输入序列为{20,11,12,…},构造一棵平衡二叉树,当插入值为12的结点时发生了不平衡,则应该进行的平衡旋转是( )。 A. LL B. LR C. RL D. RR 二、填空题(每空3,共24)。 1.在有序A[1..18]中,采用二查找算法查找元素值等于A[7]的元素,所比较过的元素的下标依次为 。 2.利用逐点插入法建立序列(61,75,44,99,77,30,36,45)对应的二叉排序树以后,查找元素36要进行 次元素间的比较,查找序列为 。 3. 用顺序查找法在长度为n的线性中进行查找,在等概率情况下,查找成功的平均比较次数是 。 4. 二查找算法描述如下: intSearch_Bin(SST ST, KT key) { low=1 ; high=ST. length; while(low<=high) { mid=(low+high)/2; if(key==ST.elem[mid].key) return mid; else if(key<ST.elem[mid].key) ; else ; } return 0; } 5.链式二叉树的定义如下: typedef struct Btn{ TElemType data; ; }BTN ,*BT; 6.在有n个叶子结点的哈夫曼树中,总结点数是 。 三、综合题(共52)。 1. (共12)假定关键字输入序列为19,21,47,32,8,23,41,45,40,画出建立二叉平衡树的过程。 2. (共15)有关键字{13,28,31,15,49,36,22,50,35,18,48,20},Hash 函数为H=key mod 13,冲突解决策略为链地址法,请构造Hash(12),并计算平均查找长度(3)。 ASL= 3. (共10)设关键字码序列{20,35,40,15,30,25},给出平衡二叉树的构造过程。 4. (共15)设哈希表长为m=13,散列函数为H(k)=k mod 11,关键字序列为5,7,16,12,11,21,31,51,17,81;试:散列后的中关键字布(假定解决冲突的方法为线性探测再散列法);平均查找长度ASL;计算该的装填因子。 (1)按要哈希10): 0 1 2 3 4 5 6 7 8 9 10 11 12 (2)计算ASL(3): ASL= (3)计算装填因子(2):装填因子=
一.单选题(共10题,5) 1线性采用链式存储结构时,其地址( )。A、必须是连续的B、部地址必须是连续的C、一定是不连续的D、连续与否均可以正确答案: D 2带头结点的单链head为空的判断条件是( )。A、head=NULLB、head->next=NULLC、head->next=headD、head!=NULL正确答案: B 3将两个各有n个元素的有序归并成一个有序,其最少的比较次数是( )。A、nB、2n-1C、 2nD、n-1正确答案: A 4在一个单链中,已知q所指结点是p所指结点的前趋结点,若在q和p之间插入s结点,则执行( )。A、 s->next=p->next;p->next=sB、p->next=s->next;s->next=pC、q->next=s;s->next=pD、p->next=s;s->next=q正确答案: C 5向一个有 127 个元素的顺序中插入一个新元素并保持原来顺序不变,平均要移动( )个元素。A、64B、63C、63.5D、7正确答案: C 插入 n/2 删除 n-1/2 查询 n+1/2 6若某线性中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( )存储方式最节省运算时间。A、单链B、仅有头指针的单循环链C、双链D、仅有尾指针的单循环链正确答案: D 7若长度为n的线性采用顺序存储结构,在其第个i位置插入一个新元素算法的时间复杂度为( )。A、 O(log2n)B、O(1)C、O(n)D、O(n2) 正确答案: C 8线性的静态链存储结构与顺序存储结构相比优点是( )。A、所有的操作算法简单B、便于插入和删除C、便于利用零散的存储空间D、便于随机存取正确答案: B 9在一个单链中, 若删除 p 所指结点的后续结点, 则执行( )A、s->next=p;p->next=s;B、s->next=p->next;p=s;C、s->next=p->next;p->next=s;D、p->next=s;s->next=p;正确答案: B 10一个线性第一个元素的存储地址是 100, 每个元素的长度为 2,则第 5 个元素的地址是( )A、110B、108C、100D、120

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值