数据结构
正序与逆序创建链表
头插法(逆序):
void CreateList_L(LinkList &L,int n)
{
// 逆位序输入n个元素的值,建立带表头结点的单链线性表L。
int i;
LNode *p;
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL; // 先建立一个带头结点的单链表
for(i=n;i>0;--i)
{
p = (LinkList)malloc(sizeof(LNode)); //生成新结点
printf("Please input data:\n");
scanf("%d",&p->data); //输入元素值
p->next = L->next; L->next = p; //插入到表头
}
}
尾插法(正序):
void CreateList_L (LinkList &L, int n)
{
//逆位序输入n个元素的值,建立带表头结点的单链线性表L。
int i;
LinkList p,q;
L = (LinkList) malloc (sizeof (LNode));
L->next = NULL; //先建立一个带头结点的单链表
q = L; //保持q指向当前表尾
for (i = 0; i <n; i++)
{
p = (LinkList) malloc (sizeof (LNode));//生成新结点
printf("Please input data:\n");
scanf("%d",&p->data); //输入元素值
p->next = NULL;
q->next = p; q = p; //插入到表尾
}
} //CreateList_L