⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linklist.cpp

📁 各种算法的c语言程序
💻 CPP
字号:
#include "LinkList.h"

void Initlist(link &L)     //初始化一个空的线性链表L
{
	L->next=NULL;
	Llength=0;
}//Initlist

int Listlength(link L)     //求链表的长度
{
	return Llength;
}//Listlength

int Listempty(link &L)    //判断链表是否为空链表
{
	if(!L->next==NULL) return FALSE;
	else return TRUE;
}//Listempty

int Listinsert(link &L,int i,ElemType e)    //将e插入到第i个元素前
{
	link p,s;
	p=L;
	int j=0;
	while(p&&(j<(i-1)))
	{
		p=p->next;
		++j;
	}
	if(!p||j>i-1)
	{
		cout<<" i是不合法的"; 
		return ERROR;
	}
	s=(link)malloc(sizeof(Lnode));
    s->next=p->next; s->data=e; p->next=s;
	Llength++;
	return OK;
}//Listinsert

int Listdelete(link &L,int i,ElemType &e)    //删除第n个元素并由e返回其值
{
	link p=L,q;
	int j=0;
	while(p->next&&j<i-1){p=p->next; ++j;}
	if(!(p->next)||j>i-1)
	{
		cout<<"i不合法";
		return ERROR;
	}
    q=p->next; p->next=q->next;
	e=q->data;
	Llength--;
	free(q);
	return OK;
}//Listdelete

void Listdisplay(link l)   //显示链表内容
{
	int i=0;
	link r;
	r=l;
	for(i=1;i<=Llength;i++)
	{
		r=r->next; 
		cout<<r->data<<endl;
	}
}//Listdisplay

void Createlist(link &l,int n)    //创建链表
{
	l=(link)malloc(sizeof(Lnode));
	int i;
	link p;
	l->next=NULL;
	Llength=n;
    for(i=n;i>0;--i)
	{
		p=(link)malloc(sizeof(Lnode));
		cout<<"输入第"<<i<<"值";
		cin>>p->data;
		p->next=l->next;
		l->next=p;
	}
}//Createlist

int Seekprecedor(int i,link &q,link &l)    //寻找第i个结点的前驱
{
	link p;
	p=l;
	int j=0;
	if(i>Llength+1) 
	{
		cout<<"i非法";
		return ERROR;
	}
	while(p&&j<i-1)
	{
		p=p->next; 
		++j;
	}
	q=p;
	return OK;
}//Seekprecedor

int Set(link &l,int i,link &q)      //定位第i个结点
{
	int j=0;
    link p=l;
	if(i>Llength) {
		cout<<"i非法"; 
		return ERROR;
	}
	while(p&&j<i)
	{
		p=p->next; 
		++j;
	}
	q=p;
	return OK;
}//Set

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -