单链表-用尾插法创建单链表

来源:互联网 发布:linux 统计登录次数 编辑:程序博客网 时间:2024/05/01 10:29
#include <iostream>
#include <stdlib.h> 
using namespace std;


typedef int ElemType;          //自定义数据类型


typedef struct LNode{          //定义单链表结点类型
ElemType data;         //存放元素值
struct LNode *next;    //指向后继节点
}LinkList;


void CreateListR(LinkList * &L,ElemType a[],int n){    //创建单链表
LinkList *s , *r;
int i;
L=(LinkList *)malloc(sizeof(LinkList));        //创建头节点
r=L;                                           //r始终指向尾节点,开始时指向头节点
for(i=0;i<n;i++){ 
s=(LinkList *)malloc(sizeof(LinkList)); 
cin>>a[i];
s->data = a[i];                        //创建数据类型 *s
r->next = s;                           //将*s插入*r之后
r=s;                                   

r->next = NULL;                                //尾节点next域置为NULL
}


void DispList(LinkList *L){                            //输出单链表
LinkList *p = L->next;                         //p指向开始节点
while(p!=NULL){                                //p!=NULL,输出*p节点的data域
cout<<p->data<<" ";
p=p->next;                             //p移向下一个节点
}
cout<<endl;
}


int main(){
int n,a[10],i;
LinkList *L;                                   
cin>>n;;
CreateListR(L,a,n);
DispList(L);
return 0;


0 0