C语言回顾(7)

单链表的创建
单链表一般有两种创建方法,一种是头插法,一种是尾插法。
头插法是将新的节点不断的添加到头结点的后面,尾插法试讲新节点不断添加到链表的最后面,并将尾结点的指针域指向NULL;已达成创建链表的目的。

头插法
头插法是先定义一个结构体指针,并给其分配相应的内存空间,再将头指针的指针域赋值给新建结构体指针的指针域,让新建结构体指针的指针域可以指向头指针所指向的地方,再将新建结构体指针赋值给头指针的指针域,使得头指针指向新建结构体指针,这样就将一个节点插入到了链表中了,这及为头插法。

#include<stdio.h>
#include<Windows.h>
typedef struct
    {
    	int data;
    	stu *next;
    }stu;
    void lnitLink(stu *&L)//链表的初始化
    {
    	L=(stu*)malloc(sizeof(stu));
    	L->next=NULL;
    }
    void Listlnsert(stu *&L,int n)//头插法
    {
    	stu*m=(stu*)malloc(sizeof(stu));
    	m->data=n;
    	m->next=L->next;
    	L->next=m;
    }

尾插发
尾插发是先构建一个个结构体指针1,并给其分配相应的内存空间,在构建一个结构体指针2,将头指针赋值给它,给结构体指针1的数据域赋值后,将结构体指针1赋值给结构体指针2的指针域是结构体的头指针可以指向第一个新建节点,然后,将结构体指针1赋值给结构体指针2,使得结构体指针1变成结构体指针2,最后将NULL赋值给结构体指针2的指针域。

#include<stdio.h>
#include<Windows.h>
typedef struct
{
 int data;
 stu *next;
}stu;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
void lnitLink(stu *&L)//链表的初始化
{
 L = (stu*)malloc(sizeof(stu));
 L->next = NULL;
}
void Listlnsert(stu *&L, int a[10])//尾插法
{
 int i;
 stu *m, *n;
 m = L;
 for (i = 0; i < 10; i++)
 {
  n= (stu*)malloc(sizeof(stu));
  n->data = a[i];
  m->next = n;
  m = n;
 }
 m->next = NULL;
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值