基本信息
源码名称:数据结构头插法建立单链表
源码大小:0.14M
文件格式:.rar
开发语言:C/C++
更新时间:2019-10-13
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 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;
}