您的位置:首页 > 理论基础 > 数据结构算法

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

2016-09-27 20:37 302 查看
#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;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息