4、in1, int a, struct Node * chain2, int b)算法的功能是实现两个链表的交叉合并,并且可以根据两链表的长短将行不通的插入。(5) void InsertSort(struct Node *p,int m)算法的功能是对一合并好的链表进行升序插入排序。(6) main()函数主要是对算法进行测试。数据结构:数据结构定义如下:struct Node { long int number; struct Node *next;};源程序:#include
5、lib.h>#include#include#include#define L sizeof(struct Node) struct Node //结构体{ long int number; struct Node *next;}; struct Node *create(int a)//链表创建函数{ int n; struct Node *p1, *p2, *head; head = NULL; n = 0;
6、p2 = p1 = (struct Node *) malloc(L); //分配内存 scanf("%ld", &p1->number); while (a)//录入链表信息 { n = n + 1; if (n == 1) head = p1; else p2->next = p1; p2 = p1; p1 = (struct Node *) malloc(L);
7、 if (a != 1)//分配内存 scanf("%ld", &p1->number); a--; //控制输入的个数 } p2->next = NULL; return (head);}//链表创建函数结束 void print(struct Node *head)//输出函数{ struct Node *p; p = head; printf("数字:"); if (head != NULL) do//循环实现