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

📄 04071402llist.h

📁 数据结构链表的C++源程序,实现简单易懂,绝对正确,直接就可以运行,不需做任何修改.
💻 H
字号:
//自定义单链表头文件 04071402llist.h

typedef struct Lnode                  //定义链表结构体
{
	elemtype data;
	struct Lnode *next;
}*llist;

void visit(elemtype e)                //输出元素
{
	cout<<e<<"  ";
}

void listcreat(llist &l)           //创建一个空链表
{
	l=new Lnode;
	l->next=NULL;
}

void listcreat(llist &l,int n,elemtype a[])         //创建一个非空的链表
{
	llist p;
	int i;
	l=new Lnode;
	l->next=NULL;
	for(i=n-1;i>=0;i--)
	{
		p=new Lnode;
		p->data=a[i];
		p->next=l->next;
		l->next=p;
	}
}

bool getelem(llist l,int i,elemtype &e)      //从链表中获取元素
{
	llist p;
	int j;
	for(p=l->next,j=1;p&&(j<i);j++)
		p=p->next;
	if(!p||i<1)
		return false;
	e=p->data;
	return true;
}

void listtraverse(llist l)                      //链表的遍历函数
{
	llist p;
	for(p=l->next;p;p=p->next)
		visit(p->data);
}

bool listdelete(llist &l,int i,elemtype &e)        //删除节点
{
	llist p,q;
	int j;
	j=0;p=l;
	while(p->next&&j<i-1)
	{
		p=p->next;
		j++;
	}
	if(!(p->next)||(i<1))
		return false;
	q=p->next;
	e=q->data;
	p->next=q->next;
	delete q;
	return true;
}

bool listinsert(llist &l,int i,elemtype e)         //插入节点
{
	llist p,s;
	int j;
	j=0;p=l;
	while(p&&(j<i-1))
	{
		p=p->next;
		j++;
	}
	if(!p||i<1)
		return false;
	s=new Lnode;
	s->data=e;
	s->next=p->next;
	p->next=s;
	return true;
}

⌨️ 快捷键说明

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