头结点的单链表的区别答带头结点的单链表和不带头结点的单链表的区别主要体现在其结构上和算法操作上在结构上带头结点的单链表不管链表是否为空均含有一个头结点不带头结点的单链表不含头结点在操作上带头结点的单链表的初始化为申请一个头结点无论插入或删除的位置是地第一个结点还是其他结点算法步骤都相同不带头结点的单链表其算法步骤要分别考虑插入或删除的位置是第一个结点还是其他结点因为两种情况的算法步骤不同
f四程序填空题11pdatai2p
extNULL3q
extp4qp
21headp2qp3p
extNULL4p
extq
ext5q
extp31pq
ext2q
extp
ext
五完成实验1——线性表根据实验要求见教材P201202认真完成本实验并提交实验报告
作业2答案本部分作业覆盖教材第35章的内容
f一单项选择题1C2B3A13B23C4C14B24B5B6A7B8C9A10C18A19C20D31A
11B12C21B32D22D
15A25D
16C26A
17B
2728CD
2930DC
二填空题1后进先出2下一个3增14假上溢5栈是否满stopMAXSIZE1栈顶指针stop1栈顶元素修改栈顶指针6bceda7终止条件递归部分8LUfro
tLUrear9运算符操作数abcfde栈顶对应的数组元素栈是否空增1
10s
exth11hh
ext12r
exts13ff
ext
f14字符15顺序存储方式链式存储方式160空格字符的个数17特殊18稀疏2
19def20串长度相等且对应位置的字符相等21ii12j22行下标列下标非零元素值
三问答题1简述栈和一般线性表的区别答栈是一种先进后出的线性表栈的插入和删除操作都只能在栈顶进行而一般的线性表可以在线性表的任何位置进行插入和删除操作
2简述队列和一般线性表的区别队列是一种先进先出的线性表队列的插入只能在队尾进行队列的删除只能在队头进行而一般的线性表可以在线性表的任何位置进行插入和删除操作
3链栈中为何不设头结点答因为链栈只在链头插入和删除结点不可能在链表中间插入和删除结点算法实现很简单所以一般不设置头结点
f4利用一个栈则1如果输入序列由ABC组成试给出全部可能的输出序列和不可能的输出序列2如果输入序列由ABCD组成试给出全部可能的输出序列和不可能的输出序列答1栈的操作特点是后进先出因此输出序列有A入A出B入B出C入C出输出序列为ABCA入A出B入C入C出B出输出序列为ACBA入B入B出A出C入C出输出序列为BACA入B入B出C入C出A出输出序列为BCAA入B入C入C出B出A出输出序列为CBA由ABC组成的r