当前位置:   article > 正文

数据结构单链表——建立单链表_数据结构单链表的创建

数据结构单链表的创建

 0.建立单链表前的工作

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. //定义结构体
  4. typedef int Elemtype;
  5. typedef struct LNode{
  6. Elemtype data; //单链表结点中的数据域,用来存放数据
  7. LNode *next; //单链表结点中的指针域,用来存放下一个结点的地址
  8. }LNode,*Linklist;

1.头插法建立单链表

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

主函数调用

  1. int main(){
  2. Linklist L; //定义一个LNode类型的变量L
  3. Create_head(L); //头插法创建单链表
  4. printlist(L); //打印输出
  5. return 0;
  6. }

 运行示例 

 

2.尾插法建立单链表

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

主函数调用

  1. int main(){
  2. Linklist L; //定义一个LNode类型的变量L
  3. Create_tail(L); //尾插法创建单链表
  4. printlist(L); //打印输出
  5. return 0;
  6. }

 运行示例 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/515531
推荐阅读
相关标签
  

闽ICP备14008679号