问答题
已知一个线性表,其中的数据元素类型均为整型。现有两个单链表La和Lb,其中La只能存储偶数而Lb只能存储奇数。现想利用La和Lb来存储此线性表。请完成以下问题:
问答题
给出算法的主要思想;
【正确答案】依次遍历线性表,如果线性表中的数据是偶数则插入La中,如果是奇数,那么就插入Lb中。
【答案解析】
问答题
写出算法的实现函数;
【正确答案】算法的函数如下:
void decompose(LinkList &L, LinkList &La, LinkList &Lb)
//含头结点
{
LNode *p, *q;
p=L->next;
La=L;
La->next=La;
Lb->next=Lb; //空的循环链表
while(p!=NULL){
q=p->next;
if(p->data%2==0){//偶数则插入La中
p->next=La->next;
La->next=p;
}else{ //奇数则插入Lb中
p->next=Lb->next;
Lb->next=p;
}
p=q;
}
}
【答案解析】
问答题
总结所用算法的时间和空间复杂度。
【正确答案】遍历链表的时间复杂度为O(n),算法实现过程中使用的辅助空间为常量,空间复杂度为O(1)。
【答案解析】