已知一个带附加头结点的单链表中包含有三类字符(数字字符、字母字符和其他字符),试编写一个函
数,构造三个新的单链表,使每个单链表中只包含同一类字符.要求使用原表的空间,附加头结点可以另辟空间。
数,构造三个新的单链表,使每个单链表中只包含同一类字符.要求使用原表的空间,附加头结点可以另辟空间。
O(n)的算法:将L改造为I.=(a1,a3,…,an,…,a4,a2)。
A、s=rear;rear=rear->link;deletes;
B、rear=rear->link;deleterear;
C、rcar=rear->link->link;deleterear;
D、s=rear->link->link;rear->link->link=s->link;deletes;
设单链表中结点的结构为:
已知单链表中结点*p不是链尾结点,若在*p之后插人结点*s,则应执行下列()操作。
A、s->link=p;p->link=s;
B、p->link=s;s->link-p;
C、s->link-p->link;p=s;
D、s-->link=p->link;p->link=s;
设单链表中结点的结构为:
若想在单链表中摘除结点*p(*p既不是第一个也不是最后一个结点)的直接后继,则应执行以下()操作.
A、p->link=p->link->link;
B、p-p->link;p->link-p->link->link;
C、p->link=p->link;
D、p=p->link->link;
从大到小的次序链接的,试分别写出从顶点0出发按深度优先搜索遍历得到的顶点序列和按广度优先搜索遍历得到的顶点序列。
设线性表试写一个按下列规则合并A,B为线性表C的算法,即使得
线性表A,B和C均以单链表作存储结构,且C表利用A表和B表中的结点空间构成。注意:单链表的长度值m和n均未显式存储。
(1)编写一个算法,从任一给定的位置(pr,p)开始,将指针p右移k个结点。如果p移出链表,则将p为0,并让pr停留在链表最右边的结点上。
(2)编写一个算法,从任一给定的位置(pr,p)开始,将指针p左移k个结点。如果p移出链表,则将p置为0,并让pr停留在链表最左边的结点上。