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

📄 list.cpp

📁 用C实现树和图的相关算法
💻 CPP
字号:
#include <stdio.h>
#include <malloc.h>
#include "list.h"

list newList()
{
	list l=(list)malloc(sizeof(*l));
	l->element=NULL;
	l->next=NULL;
	return l;
}

int lengthList(list l)
{
	int count=0;
	list p;
	p=l->next;
	while(p)
	{
		count++;
		p=p->next;
	}
	
	return count;

}

void insertList(list l,poly elem,int n)
{
	if(n<1||n>lengthList(l)+1)
	{
		printf("\nerror:the location is not right!\n");
	}
	else
	{

	int i;
	list p,q;
	p=l;
	for(i=0;i<n;i++)
	{
		q=p;
		p=p->next;
	}

	list e=newList();
	q->next=e;
	e->element=elem;
	e->next=p;

	}

}

void insertListHead(list l,poly elem)
{
	insertList(l,elem,1);
}

void insertListTail(list l,poly elem)
{
	insertList(l,elem,lengthList(l)+1);
}

int listIsEmpty(list l)
{
	if(l->next)
		return 0;                      //非空则返回0
	else 
		return 1;                      //空则返回1
}


poly deleteList(list l,int n)
{
	if(listIsEmpty(l))
	{
		printf("\n\nerror:\n Empty list can not be delete!!!!!!!!!!!!\n");
	}
	else 
		if(n<1||n>lengthList(l)+1)
	{
		printf("\nerror:the location is not right!\n");
	}
		else
	{
		int i;
		list p,q;
		q=l;
		p=l->next;
		for(i=1;i<n;i++)
		{
			q=p;
			p=p->next;
		}

		q->next=p->next;
		return p->element;
	}

	return NULL;				

}


poly deleteListHead(list l)
{
	return deleteList(l,1);
}




poly deleteListTail(list l)
{
	return deleteList(l,lengthList(l));
}

⌨️ 快捷键说明

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