一:
题目:
广义表即我们通常所说的列表(lists)。它放松了对表元素的原子性限制,允许他们有自身结构。那么广义表E((a,(a,b),((a,b),c)))的长度和深度分别为?
答案为1和4
知识点:
广义表的长度和深度
长度:去掉一层括号剩下的是几部分。
深度:去掉几层括号可以到最后一部分。
二:
题目:
在一个长度为n的单链表的第i(0<=i<n)个元素后面插入一个元素时,需要向后移动( )个元素。
答案是0 。
知识点:
冷知识:链表进行插入和删除时不需要移动元素(笑)。
三:
题目:
单链表的按升序排列,其中L指向头结点,写一个函数,若start<元素<end,则删除,并释放空间。
如13->19->26->30->49->63,start=21,end=51,删除后为13->19->63.结点定义及函数模板如下,请为(1)(2)(3)(4)处出选择合适的代码。
typedef struct Node{
int data;
struct Node *next;
}Node,*LinkList;
int delList(LinkList L,int start,int end)
{
(1) * q = L,*p = L->next;
int delFlag = 0;
while ( p )
if ( p->data <= start)
{ q = p; p = (2);}
else
if ( p->data < end )
{
q->next = (3); free(p);
p = (4); delFlag = 1;
}
else break;
if( delFlag == 0) return -1;
return 0;
}
答案:(1)Node (2)p->next (3)p->next (4)q->next
知识点:
纯属没仔细读题,不说了(默默在卷子上写下“读题”二字)
四:
题目:
适用于压缩存储稀疏矩阵的两种存储结构是()?
答案:三元组表和十字链表
知识点:
三元组表的结点存储了行row、列col、值value三种信息,是主要用来存储稀疏矩阵的一种数据结构。十字链表将行单链表和列单链表结合起来存储稀疏矩阵。邻接矩阵空间复杂度达O(n2),不适于存储稀疏矩阵。二叉链表又名左孩子右兄弟表示法,可用于表示树或森林