数据结构单链表——建立单链表

 0.建立单链表前的工作

#include
#include
//定义结构体
typedef int Elemtype;
typedef struct LNode{Elemtype data;    //单链表结点中的数据域,用来存放数据LNode *next;      //单链表结点中的指针域,用来存放下一个结点的地址
}LNode,*Linklist;  

1.头插法建立单链表

Linklist Create_head(Linklist &L){LNode *s;    //定义s指针int x;       //用来保存数据L=(LNode*)malloc(sizeof(LNode));   //向内存申请开辟一个LNode类型大小的内存空间,L作为头结点L->next=NULL;    //将头指针的next置空scanf("%d",&x);while(x!=999){    //若输入为999则结束输入s=(Linklist)malloc(sizeof(LNode));    //向内存申请为s开辟一个LNode类型大小的内存空间s->data=x;            //将x的值赋值给s结点的数据域datas->next=L->next;      //s结点指向头结点的下一个结点L->next=s;            //再将头结点指向s结点scanf("%d",&x);        //再次输入数据}return L;    //返回L的地址
}

主函数调用

int main(){Linklist L;    //定义一个LNode类型的变量LCreate_head(L);    //头插法创建单链表printlist(L);    //打印输出return 0;
}

 运行示例 

 

2.尾插法建立单链表

//尾插法建立单链表
Linklist Create_tail(Linklist& L) {int x;   L = (Linklist)malloc(sizeof(LNode));LNode*s,*r=L;    //与头插法不同的是需要定义一个尾指针r,r始终指向单链表中最后一个结点scanf("%d",&x);while (x!=999){s = (LNode*)malloc(sizeof(LNode));s->data = x;    r->next=s;    //当前的尾结点指向sr = s;        //将s的值传给r,目的是将s作为当前的尾结点scanf("%d", &x);}r->next = NULL;    //插入完成后将r->next置空return L;
}

主函数调用

int main(){Linklist L;    //定义一个LNode类型的变量LCreate_tail(L);    //尾插法创建单链表printlist(L);    //打印输出return 0;
}

 运行示例 

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部