单链表简介:
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。
代码:
#include <stdio.h>
#include "stdlib.h"
typedef int ElemType;
typedef struct Node
{
ElemType data;
struct Node *next;
}Node,*LinkList;
bool InitList(LinkList &L){
L=(Node *)malloc(sizeof(Node));
if(L==NULL){
return false;
}
L->next=NULL;
return true;
}
bool isEmpty(LinkList L){
if(L->next==NULL){
return true;
}else{
return false;
}
}
LinkList creatPreList1(LinkList &L){
Node *s;
int x;
L=(Node *)malloc(sizeof(Node));
L->next=NULL;
scanf("%d",&x);
while(x!=0){
s=(Node *)malloc(sizeof(Node));
s->data= x;
s->next=L->next;
L->next=s;
scanf("%d",&x);
}
return L;
}
LinkList creatPreList2(LinkList &L,int n){
Node *s;
int x;
L=(Node *)malloc(sizeof(Node));
L->next=NULL;
for(int i=0;i<n;i++){
s=(Node *)malloc(sizeof(Node));
scanf("%d",&x);
s->data= x;
s->next=L->next;
L->next=s;
}
return L;
}
LinkList creatNextList1(LinkList &L){
int x;
L=(Node *)malloc(sizeof(Node));
Node *s,*r=L;
scanf("%d",&x);
while(x!=0){
s=(Node *)malloc(sizeof(Node));
s->data= x;
r->next=s;
r=s;
scanf("%d",&x);
}
r->next=NULL;
return L;
}
bool creatNextList2(Node *p,int e){
if(p==NULL){
return false;
}
Node *s=(Node *)malloc(sizeof(Node));
if(s==NULL){
return false;
}
s->data=e;
s->next