#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define MaxSize 100
typedef int ElemType;
typedef struct LNode //定义单链表节点类型
{
ElemType data; //存放元素值
struct LNode *next; //指向后继节点
} LinkList;
void CreateListF(LinkList *&L,ElemType a[],int n) //头插法建表
{
LinkList *s;
int i;
L=(LinkList *)malloc(sizeof(LinkList));
L->next=NULL; //创建头节点,其next域置为NULL
for(i=0;i<n;i++) //循环建立数据节点
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=a[i]; //创建数据节点*s
s->next=L->next; //将*s插在原开始节点之前,头节点之后
L->next=s;
}
}
void CreateListR(LinkList *&L,ElemType a[],int n)//尾插法建表
{
LinkList *s,*r;//首先定义添加进去的新节点ss和尾节点r
int i;//定义参数i
L=(LinkList *)malloc(sizeof(LinkList));//创建头节点
r=L;//让尾节点指向头节点,开始时指向头节点
for (i=0;i<n;i++)//循环添加新节点s
{
s=(LinkList *)malloc(sizeof(LinkList));//创建新节点s
s->data=a[i];//创建数据节点*s(相当于此时的一个scanf)
r->next=s;
r=s;//上述代码可简化为r->next=r;指针后移。让新节点指向尾节点,反复循环。
#include <malloc.h>
#include <stdlib.h>
#define MaxSize 100
typedef int ElemType;
typedef struct LNode //定义单链表节点类型
{
ElemType data; //存放元素值
struct LNode *next; //指向后继节点
} LinkList;
void CreateListF(LinkList *&L,ElemType a[],int n) //头插法建表
{
LinkList *s;
int i;
L=(LinkList *)malloc(sizeof(LinkList));
L->next=NULL; //创建头节点,其next域置为NULL
for(i=0;i<n;i++) //循环建立数据节点
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=a[i]; //创建数据节点*s
s->next=L->next; //将*s插在原开始节点之前,头节点之后
L->next=s;
}
}
void CreateListR(LinkList *&L,ElemType a[],int n)//尾插法建表
{
LinkList *s,*r;//首先定义添加进去的新节点ss和尾节点r
int i;//定义参数i
L=(LinkList *)malloc(sizeof(LinkList));//创建头节点
r=L;//让尾节点指向头节点,开始时指向头节点
for (i=0;i<n;i++)//循环添加新节点s
{
s=(LinkList *)malloc(sizeof(LinkList));//创建新节点s
s->data=a[i];//创建数据节点*s(相当于此时的一个scanf)
r->next=s;
r=s;//上述代码可简化为r->next=r;指针后移。让新节点指向尾节点,反复循环。