
#include<stdio.h>
#include<stdlib.h>
typedef enum status
{
success, error, fail
}status;
typedef int ElemType;
typedef struct Node
{
ElemType elem;
struct Node* next;
} Node, * ptr;
typedef ptr* SqList;
status List_init(SqList L);
status create_list(SqList L, int n);
status find_list(SqList L, int n);
void printf_list(SqList L);
status List_init(SqList L)
{
status s = error;
ptr p;
if (*L == NULL)
{
p = (ptr)malloc(sizeof(Node));
if (p == NULL)return s;
else
{
*L = p;
(*L)->next = NULL;
s = success;
}
}
return s;
}
status create_list(SqList L, int n)
{
status s = fail;
s = List_init(L);
int i = 1;
ptr r = *L;
while ((*L) && i <= n)
{
ptr p = (ptr)malloc(sizeof(Node));
if (p != NULL)
{
r ->next= p;
p->next = NULL;
r = r->next;
}
}
return s;
}
status find_list(SqList L,int n)
{
status s = error;
create_list(L, n);
ptr r = *L;
printf("Enter ElemType:\n");
while (r->next)
{
ElemType data;
scanf_s("%d", &data);
r->elem = data;
r = r->next;
s = success;
}
printf("Input completely!\n");
return s;
}
void printf_list(SqList L)
{
ptr p;
p = *L;
while (p->next)
{
printf("%d\t", p->elem);
p = p->next;
}
printf("\n");
}
int main()
{
int n, m;
SqList LA, LB;
LA = (SqList)malloc(sizeof(ptr*));
LB = (SqList)malloc(sizeof(ptr*));
printf("Enter n,m:\n");
scanf_s("%d %d", &n, &m);
create_list(LA, n);
create_list(LB, m);
find_list(LA, n);
find_list(LB, n);
printf_list(LA);
printf_list(LB);
return 0;
}
求解答。