第2题
第3题
A.p:=p^.next
B.q:=p^.next;p^.next:=q^.next
C.p^.next:=q;q^.next:=p
D.p:=q^.next;q^.next=p
第4题
假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data值,并返回1;否则,只返回0。要求: (1)描述算法的基本设计思想; (2)描述算法的详细实现步骤; (3)根据设计思想和实现步骤,采用程序设计语言描述算法(使用C或C++或JAVA语言实现),关键之处请给出简要注释。
第5题
第6题
第7题
A.P→ next = P→next→next; Q=P→next; free(Q);
B.Q = P → next; P → next = P → next→next; free(Q);
C.P → next → next = P → next; Q = P → next; free(Q);
D.Q = P → next; P → next → next = P→next; free(Q);
第8题
A.S→next=P→next;P→next=S;
B.P→next=S;S→next=P→next;
C.S=P→next;P→next=S→next;
D.P→next=S→next;S=P→next;
第9题
【说明】设单链表的结点类和链表类的定义如下,链表不带有表头结点。请填空:
include<iostream.h>
include<assert.h>
template<class T>class List;
template<class T>class ListNOde{
friend (1);
private:
T data;
ListNode<T> *link;
public:
ListNode():link(NULL)()
ListNOde(const T& item,ListNOde<T>*next=NULL)
:data(item),link(next){}
};
template<class T>class List{
private:
ListNode<T>*first;
void createList(T A[],int n,int i,ListNOde<T>*&p);
void printList(ListNOde<T>*p);
public:
List();
~List();
friend ostream& operator<<(ostream& ost,List<T>&L);
friend istream& operator>>(istream& ist,List<T>&L);
};
template<class T>
istream& operator>>(istream& ist,List<T>&1){
int i,n; ist>>n;
T A[n];
for(i=0;i<n;i++) (2);
createList(A,n,0,first);
}
template<class T>
void List<T>::createList(TA[],int n,int i,ListNOde<T>*& p){
//私有函数:递归调用建立单链表
if(i==n)p=NULL;
else{
p=new ListNode<T>(A[i]);
assert(p !=NULL);
createList((3));
}
}
template<class T>
ostream& operator<<(ostream& ost,List<T>& L){
(4);
}
template<class T>
void List<T>::printList(ostream& ost,ListNode<T>*p){
if(p!=NULL){
ost<<p->data;
(5);
}
}
第10题
(1)删除P结点的语句序列是______;
(2)删除尾元结点的语句是______。
a P—>next=P—>next—>next b P=P—>next—>next
c while(P—>next!=Q)P=P—>next
d while(P—>next!—>next!=Q)P=P—>next
e while(P—>next!—>next!=NULL)P=P—>next
f Q=P g Q=P—>next
h P=L i L=L—>next
j free(Q)
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!