头插法不覆盖原节点
代码:
void ceateListF(LNode *&L,ElemType a[],int n){
int i;
LNode *s;
for(i=0;i<n;i++){
s=(LNode *)malloc(sizeof(LNode));
s->data=a[i];
s->next=L->next;
L->next=s;
}
}
尾插法不覆盖原节点
代码:
void createListR(LNode *&L,ElemType b[],int n){
int i;
LNode *s,*r,*p;//r是一个始终指向终端节点的指针;
p=L;
while(p->next!=NULL){
p=p->next;
}
r=p;
for(i=0;i<n;++i){
s=(LNode *)malloc(sizeof(LNode));
s->data=b[i];
r->next=s;
r=r->next;
}
r->next=NULL;
}
数据结构:
typedef int Status;
typedef int ElemType;
//定义单链表的存储结构
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode;