简答题\n 向建立好的单向链表中的结点pr后插入一个新结点p,且所有结点都已具有如下形式的结构定义: struct node { int data; struct node *next; }*p, *pr, *head; 则操作正确的是 A、p->next = pr->next; pr->next = p; B、struct node * pTemp; pTemp = pr->next; pr->next = p; p->next = pTemp; C、pr->next = p; D、pr->next = p; p->next = pr->next;\n简答题\n 已知head是非空单链表的头指针,p结点既不是头结点,也不是尾结点,q是尾结点的前驱结点。 且所有结点都已具有如下形式的结构定义: struct node { int data; struct node *next; }*p,*q; 则下面语句序列的功能是 while(p->next->next != NULL) { p = p->next; } free(p->next); p->next = NULL; A、删除链表的尾结点 B、 删除p结点 C、删除q结点 D、删除p的前驱结点\n简答题\n 以下程序执行后的输出结果是 #include #include struct NODE { int num; struct NODE *next; }; int main( ) { struct NODE *p,*q,*r; int sum=0; p=(struct NODE *)malloc(sizeof(struct NODE)); q=(struct NODE *)malloc(sizeof(struct NODE)); r=(struct NODE *)malloc(sizeof(struct NODE)); p->num=1; q->num=2; r->num=3; p->next=q; q->next=r; r->next=NULL; sum+=q->next->num; sum+=p->num; printf("%d\n",sum); return 0; } A、4 B、3 C、2 D、1\n简答题\n 已知L是非空单链表,head是链表的头指针,且所有结点都已具有如下形式的结构定义: struct node { int data; struct node *next; }*p; 若要删除头结点,则下面正确的语句序列是 A、p = head; head = p->next; free(p); B、head = head->next; free(head); C、p = head->next; free(p); D、head = head->next; p = head; free(p);\n简答题\n 关于图的说法正确的是 A、图由顶点和边构成 B、图的邻接表属于顺序存储方式 C、图的邻接表属于链式存储方式 D、图的邻接矩阵中存储的是图的顶点\n