链表,在我看来就是节点与节点之间相互联系,每一个节点都会包括数据域和指针域两大部分,而在所有的节点中头节点则是最重要的,找到头节点就相当于找到了链表,头节点数据域为空,指针域为下一个节点的地址,节点与节点之间通过指针域联系,前一个节点的指针域存着后一个节点的地址,下面附一个我写的关于链表的一个小程序。
#include "stdio.h"
#include "stdlib.h"
typedef struct LNode
{
int data;
struct LNode *next;
} LinkList;
void CreateList(LinkList *&L,int a[],int n)
{
LinkList *s,*r;
int i;
L=(LinkList *)malloc(sizeof(LinkList));
r=L;
for(i=0;i<n;i++)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=a[i];
r->next=s;
r=s;
}
r->next=NULL;
}
void GetElem(LinkList *L,int i,int &e)
{
int j=0;
LinkList *p=L;
while(j<i&&p!=NULL)
{
j++;
p=p->next;
}
e=p->data;
printf("%d\n",e);
}
void DispList(LinkList *L)
{
LinkList *p=L->next;
while(p!=NULL)
{
printf("%d\t",p->data);
p=p->next;
}
printf("\n");
}
int main()
{
int i;
int p;
LinkList *st;
int a[10];
for(i=0;i<10;i++)
{
a[i]=i;
}
CreateList(st,a,10);
DispList(st);
GetElem(st,3,p);
printf("%d\n",p);
return 0;
}