执行下列语句后指针及链表的示意图为(43)。
L = (LinkList) malloc ( sizeof (LNode) );
P = L;
for(i =0;i <=3;i ++) {
P→next = (LinkList) malloc (sizeof (LNode));
P = P→next;
P→data = i * i + 1;
}
A.
B.
C.
D.
第1题:
7、下面的算法功能是逆置单链表,在 处填上合适的语句。 void Inversion(Link L) { p=L->next; L->next=null; while p { q=p; p=p->next; L->next=q; } }
第2题:
题目二: 有两个循环链表,链头指针分别为L1和L2,要求写出算法将L2链表链到L1链表之后,且连接后仍保持循环链表形式。 typedef struct Node{ int data; struct Node* next; }LNode; void merge(LNode *L1, LNode *L2){ LNode *p,*q ; while(p->next!=L1) p=p->next; while(q->next!=L2) q=q->next; (1) (2) }
第3题:
L1是不带头结点的单链表。以下算法功能是什么? Status fun(LinkList &L1, LinkList &L2) {p=L1; n=0; while(p){n++; p=p->next;} p=L1; for(i=1;i<n/2;i++)p=p->next; L2=p->next; p->next=NULL; return OK; }
第4题:
有两个循环链表,链头指针分别为L1和L2,要求写出算法将L2链表链到L1链表之后,且连接后仍保持循环链表形式。 typedef struct Node{ int data; struct Node* next; }LNode; void merge(LNode *L1, LNode *L2){ LNode *p,*q ; while(p->next!=L1) p=p->next; while(q->next!=L2) q=q->next; (1) (2) }
第5题:
以下用课本中Lnode节点类为单链表类定义定点插入元素方法,请填空 def ins_pos(self,elem,i): q=LNode(elem,None) p=self.head while p is not None and i>0: i-=1 ___________________ q.next=p.next ___________________ self._num+=1