数据结构(C语言版)急求2.6答案,我自己做的好像都错完了,看不懂,求大神指教

Python012

数据结构(C语言版)急求2.6答案,我自己做的好像都错完了,看不懂,求大神指教,第1张

a.在p结点后插入s结点的语句序列是:

4.s->next := p->next//把s的尾部接到链表上,连p的下一个

1. P->next :=s//把s的头部接到p的尾部

b.在p结点前插入s结点的语句序列是----------------

7.q := p //临时变量q

11.p := L//从头开始搜素

8.while (p->next != q ) do p := p->next//使p成为原p的前一个节点

4.s->next := p->next//插入,跟上面一样。

1. P->next :=s

c.在表首插入s结点的语句序列是----------------

5.s->next := L//s接原来的表头

12.L := s//将s设为新的表头

d.在表尾插入s结点的语句序列是----------------

11.p := L//从头开始搜素

9.while (p->next !=NIL) do p := p->next//找到最后一个节点

1. P->next :=s//把s接到最后一个节点上

(1)

#include "stdio.h"

#include <stdlib.h>

#include "time.h"

#define N 10//假设链表长度为10

struct node{//链表结点结构

int x

struct node *next

}

int mymax(struct node *p){//返回链表最大值函数

int max

for(max=(p=p->next)->xpp=p->next)

if(max<p->x)

max=p->x

return max

}

int main(int argc,char *argv[]){

int i,k

struct node *p,*head,*q

srand((unsigned)time(NULL))//初始化伪随机发生器

for(k=i=0i<=Ni++){

if((q=(struct node *)malloc(sizeof(struct node)))==NULL){//创建新结点

printf("Application memory failure...\n")

return 0

}

if(i){//为新结点自动赋值

q->x=rand()%100

printf(++k%10 ? "%3d" : "%3d\n",q->x)

p->next=q//将新结点接在链表最后

p=p->next

}

else

p=head=q//构造头结点不赋值

}

p->next=NULL//链表结束

printf("\nThe MAX is %d\n",mymax(head))//输出链表中最大值

for(p=headpq=p,p=p->next,free(q))//释放链表

return 0

}

运行样例:

(2)