链表的基本操作
定义单链表
typedef struct node
{
int data;
struct node *next;
}SLink;
初始化链表
int initList(SLink *L)
{
L=(SLink*)malloc(sizeof(SLink));//创建头结点
if(L==NULL)//分配节点失败,返回flase
return 0;
L->next = NULL;//设置头结点指针为空
return 1;
}
头插法建立链表
/*链表中数字顺序与数组中顺序相反 a[]={
1,2,3,4,5} L->5->4->3->2->1*/
void createList1(SLink *L,int a[],int n)
{
L = (SLink*)malloc(sizeof(SLink));
L->next = NULL;
SLink *s;
int i;
for(i=0;i<n;i++)
{
s = (SLink*)malloc(sizeof(SLink));//该节点保存数组中数字
s->data = a[i];
s->next = L->next;
L->next =s;
}