基本信息
源码名称:数据结构头插法建立单链表
源码大小:0.14M
文件格式:.rar
开发语言:C/C++
更新时间:2019-10-13
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
本实例是利用c语言来实现单链表的整体输入,其中使用了头插法的方法来实现
//单链表运算算法
#include <stdio.h>
#include <malloc.h>
typedef char ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next; //指向后继结点
} LinkNode; //单链表结点类型
void CreateListR(LinkNode *&L,ElemType a[],int n)
//尾插法建立单链表
{
LinkNode *s,*r;
L=(LinkNode *)malloc(sizeof(LinkNode)); //创建头结点
L->next=NULL;
r=L; //r始终指向尾结点,开始时指向头结点
for (int i=0;i<n;i )
{
s=(LinkNode *)malloc(sizeof(LinkNode));//创建新结点s
s->data=a[i];
r->next=s; //将结点s插入r结点之后
r=s;
}
r->next=NULL; //尾结点next域置为NULL
}
void InitList(LinkNode *&L) //初始化线性表
{
L=(LinkNode *)malloc(sizeof(LinkNode)); //创建头结点
L->next=NULL; //单链表置为空表
}
void DispList(LinkNode *L) //输出线性表
{ LinkNode *p=L->next; //p指向首结点
while (p!=NULL) //p不为NULL,输出p结点的data域
{ printf("%c ",p->data);
p=p->next; //p移向下一个结点
}
printf("\n");
}
void CreateListF(LinkNode *&L,ElemType a[],int n)
//头插法建立单链表
{
LinkNode *s;
L=(LinkNode *)malloc(sizeof(LinkNode)); //创建头结点
L->next=NULL;
for (int i=0;i<n;i )
{
s=(LinkNode *)malloc(sizeof(LinkNode));//创建新结点s
s->data=a[i];
s->next=L->next; //将结点s插在原开始结点之前,头结点之后
L->next=s;
}
}
int main()
{
LinkNode *h;
char b[]={'a','b','c'};
printf("单链表的基本运算如下:\n");
printf(" (1)初始化单链表h\n");
InitList(h);
CreateListF(h,b,3);
DispList(h);
return 1;
}