// 链表定义
#define status int
#define type int
#define format "%d"
#define OK 1
#define ERROR -1
#define FAIL 0
typedef struct NODE
{
type data;
NODE *next;
}NODE, *LINKLIST, *LINKPOI;
// 链表产生
status createLinkList(LINKLIST &LList, int n, type *element)
{
// if link list is not NULL
if(LList)
return ERROR;
if(n < 1 || !element)
return FAIL;
LINKPOI p, q = NULL;
int i;
for(i = n; i > 0; i--)
{
p = (NODE*)malloc(sizeof(NODE));
p->next = q;
p->data = *(element+i-1);
q = p;
}
LList = p;
return OK;
}
// 补充链表元素输入
int length = 0;
type tempElement, *element;
printf("***input element and end of\"0\"***\n\n");
while(OK)
{
printf("*element[%d]: ", length+1);
scanf(format, &tempElement);
if(tempElement == 0)
break;
if(length == 0)
{
element = (type *)malloc(sizeof(type));
}
element = (type *)realloc(element, (length+1) * sizeof(type));
*(element+length) = tempElement;
length++;
}
// 链表定义#define status int#define type int#define format "%d"#define OK 1#define ERROR -1#define FAIL 0typedef struct NODE{ type data; NODE *next;}NODE, *LINKLIST, *LINKPOI;// 链表产生statu