#include <stdio.h>
#include<malloc.h>
typedef struct Node
{
int data;
struct Node *Next;
}Node,*LinkedList;
/*
下面的程序为尾差法建立单链表
*/
void tailCreat(LinkedList &L,int i)
{
int j;
LinkedList p1,p2;
L = (LinkedList)malloc(sizeof(Node));
p1=L;
for(j=1;j<=i;j++)
{
p2=(LinkedList)malloc(sizeof(Node));
p2->data=j;
p1->Next=p2;
p1=p2;
}
p1->Next=NULL;
}
/*
删除单链表
*/
void remove(LinkedList &L)
{
LinkedList p,q;//p为当前要删除的节点,如果他被删除之后。我们还要删除他的下一个节点。由于此时p已经不在,所以此时,
//就需要我们用q记录p的下一个节点。
p=L->Next;
while(p)
{
q=p->Next;
free(p);
p=q;
}
L->Next=NULL;
}
int main()
{
LinkedList L;
tailCreat(L,10);
printf("%d\n",L->Next->data);
remove(L);
printf("%d\n",L->Next->data);//此时程序则无法运行,因为L-Next为空,
return 1;
}
#include<malloc.h>
typedef struct Node
{
int data;
struct Node *Next;
}Node,*LinkedList;
/*
下面的程序为尾差法建立单链表
*/
void tailCreat(LinkedList &L,int i)
{
int j;
LinkedList p1,p2;
L = (LinkedList)malloc(sizeof(Node));
p1=L;
for(j=1;j<=i;j++)
{
p2=(LinkedList)malloc(sizeof(Node));
p2->data=j;
p1->Next=p2;
p1=p2;
}
p1->Next=NULL;
}
/*
删除单链表
*/
void remove(LinkedList &L)
{
LinkedList p,q;//p为当前要删除的节点,如果他被删除之后。我们还要删除他的下一个节点。由于此时p已经不在,所以此时,
//就需要我们用q记录p的下一个节点。
p=L->Next;
while(p)
{
q=p->Next;
free(p);
p=q;
}
L->Next=NULL;
}
int main()
{
LinkedList L;
tailCreat(L,10);
printf("%d\n",L->Next->data);
remove(L);
printf("%d\n",L->Next->data);//此时程序则无法运行,因为L-Next为空,
return 1;
}