谁能认真回答此题赏分150,说到做到!

来源:百度知道 编辑:UC知道 时间:2024/06/22 05:14:14
是关于线性表表的合并问题:将两个线性表合并成一个,我在网上找到了一个程序,在数据结构方面我还是新手,所以我想请各位高手帮忙解释一下程序,要求需要一字一句地解释,解释这句话是什么意思,谁的回答能第一个让我感到满意,就给谁150分。(一般为第一详细回答)

下面是程序

1#include "stdio.h"
2#define LEN sizeof(slink)
3#include<malloc.h>
4typedef struct node
5 {
6 int data;
7 struct node *next;
8 }
9 slink;

10slink *creat(int n)
11 {
12 slink *head,*p,*q;
13 int j;
14 if(n<1)
15 return 0;
16 p=head=(slink *)malloc(LEN);
17 for(j=1;j<=n;j++)
18 {
19 q=(slink *)malloc(LEN);
20 scanf("%d",&q->data);
21 p->next=q;
22 p=q;
23 }
24 p->next=NULL;
25 return head;
26 }
27 void print(slink *head)
28 {
29 slink *p;
30 p=head->next;
31 while(p)
32 {
33 printf("%d\n",p->data);
34 p=p->next;
35 }
36 }
37 slink *merge(slink *la,slink *lb

1#include "stdio.h" //包含头文件stdio.h,包括一些基本输入输出等函数预定义
2#define LEN sizeof(slink) //定义LEN为slink结构的大小 sizeof函数取得一个结构或变量等所占内存空间大小
3#include<malloc.h> //包含头文件malloc.h,用于分配内存等
4typedef struct node //定义结构体node
5 { //开始定义结构体node
6 int data; //结构体node包含一个整数data
7 struct node *next; //结构体node包含一个和自身一样的结构体,通过指针next来引用
8 } //完成定义结构体node
9 slink; //给结构体node取别名slink,slink就代表了结构体node

10slink *creat(int n) //定义一个叫creat的指针函数,该函数有一个参数为整数n,该函数返回结构体slink
11 { //开始定义函数creat
12 slink *head,*p,*q; //声明三个slink的指针head,p,q
13 int j; //声明一个整数j
14 if(n<1) //如果参数n小于1
15 return 0; //返回整数0,(这里应该有问题,返回整数和函数定义的应该返回结构体slink不一致)
16 p=head=(slink *)malloc(LEN); //如果n大于1,那么接下去执行,让p,head都指向同一个分配了slink大小的内存空间
17 for(j=1;j<=n;j++) //执行循环,循环从j=1开始,到j=n结束,每次循环j增1
18 { //循环开始
19 q=(slink *)malloc(LEN); //q指向一个分配了slink大小的内存空间
20 scanf("%d",&q->data); //要求用户从键盘输入一个整