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

📄 list.cpp

📁 数据结构中的顺序链表实验仿真
💻 CPP
字号:
//文 件 名: List.cpp
//程序功能:本程序是线性表的顺序存储结构相关操作的头文件
//作    者:张明谦
//时    间:2008年7月6日
//版    本:1.0

#include <stdlib.h>
#include "List.h"

//线性表的初始化
int Init_List(List &list)
{
	//分配初始存储单元
	list.Item = (itemtype*)malloc(Init_List_Size*sizeof(itemtype));
	if (NULL == list.Item)
		return 0;
	
	//初始化线性表成员
	list.length = 0;
	list.listsize = Init_List_Size;

	return 1;
}

//线性表的销毁
void Del_List(List &list)
{
	//释放线性表占用的存储单元
	free(list.Item);
	
	//为防止产生野指针将list.Item赋值为空
    list.Item = NULL;

	//设置线性表的成员
	list.length = 0;
	list.listsize = 0;
}

//向线性表的第n个位置插入元素e
int  Insert_List(List &list, int n, int e)
{
	//若线性表尚未初始化,返回错误
	if (NULL == list.Item)
		return 0;
	
	//线性表已经初始化,n大于线性表中元素个数,返回错误
	if ((n > list.length+1) || ( n < 0))
		return 0;

	//n不大于线性表元素个数,但是线性表元素已经满,重新分配存储单元
	if (list.length >= list.listsize)
	{
		itemtype * temp = (itemtype*)realloc(list.Item, (list.listsize+Incr_List_Size)*sizeof(itemtype));
		if (NULL == temp)
			return 0;
		list.Item = temp;
		temp = NULL;
		list.listsize += Incr_List_Size; 
	}
	
	//插入元素
	if (n == list.length)
	{
		list.Item[n] = e;
		list.length++;
		return 1;
	}
   
/*	int i ;
	if (n == 0)
	{
		for (i = list.length; i > 0; i--)
			list.Item[i] = list.Item[i-1];
		list.Item[0] = e;
		list.length++;
		return 1;
	}
 */   
	for (int i = list.length; i > n; i--)
		list.Item[i] = list.Item[i-1];
	list.Item[n] = e;
	list.length++;

	return 1;
}

⌨️ 快捷键说明

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