单项链表的一些必要声明 #include stdio.h#include stdlib.h#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList; 从表
          单项链表的一些必要声明
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;
typedef int ElemType;
typedef struct LNode
{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList; 
从表头到表尾逆向创建链表
图示:当链表为空时的插入情况
 
 图示:当链表非空时的插入情况
 
/**
 * 从表头到表尾逆向创建链表,包含n个节点
 * 需传入表头指针的指针,因为需要对表头指针进行重定向
 * 但凡其传入的参数需要改变原值的都需要传入其指针,包括指针本身
 * 在p节点后插入in节点方法:in先和p指向相同的后继元,p再指向in
 */
void CreateList(LinkList * L, int n)
{
    *L = (LinkList)malloc(sizeof(LNode)); /* 建立头结点 */
    (*L)->next = NULL;
    LinkList in;
    for( ; n>0; n--) {
        in = (LinkList)malloc(sizeof(LNode));
        scanf("%d",&in->data); /* 创建新的节点 */
        in->next = (*L)->next; /* 总是在头结点之后插入 */
        (*L)->next = in;
    }
}
        
             