钱钱_多 钱钱_多
关注数: 35 粉丝数: 71 发帖数: 1,898 关注贴吧数: 12
急切求助啊 吧友万能给力啊 //常量声明及定义。#include <iostream>#define LIST_TNIT_SIZE 100 //线性表初始空间大小。#define LISTINCREMENT 10 //每次增加的空间大小。#define ERROR 0#define FALSE 0#define TRUE 1#define OK 1using namespace std; //使用命名空间。 //结构体声明。struct List{int *elem;int length;int listsize;}; //"list.cpp"/////////////////////////【操作函数】/////////////////////// //线性表初始化,构造一个空的线性表。int InitList(List&L){L.elem=new int[L.length]; //分配一块新的内存空间,每个内存块大小为4个字节,初始默认100个内存块空间。 if(!L.elem) return ERROR; //内存分配空间失败,则退出函数,并返回值ERROR。 else {L.length=0;L.listsize=LIST_TNIT_SIZE;}; //分配成功,则将初始长度置为0,设定初始线性表的空间大小为100。 return OK; //空间分配成功,返回值OK。} //销毁线性表L。int DestroyList(List&L){delete L.elem; //释放线性表所占用的内存空间。L.elem=NULL;L.length=0;L.listsize=0;return OK;} //将L重置为空表,仅将标的长度置为0。int ClearList(List&L){L.length=0;return OK; } //判断当前线性表是否为空,是空则返回TRUE,否则返回FALSE。int ListEmpty(List&L){if(0==L.length) return TRUE; //若线性表长度为0,则为空。else return FALSE; //否则非空。} //返回线性表的长度。int ListLength(List&L){return L.length;} //返回线性表指定位置的值。int GetList(List&L,int i,int e){int n;if(i<1||i>L.length) exit(ERROR); //判断指定位置是否处于线性表的长度范围之内,没有则直接退出函数。 for(n=1;nL.length+1) return ERROR; //i值不合法。if(L.length>=L.listsize) {newbase=(int *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int)); //当前空间已满,增加分配。if(!newbase) exit(FALSE); //存储分配失败。L.elem=newbase; //新基址。L.listsize+=LISTINCREMENT; }q=&L.elem[i-1]; //q为插入位置。for(p=L.elem+L.length-1;p>=q;--p) *(p+1)=*p; //插入元素,后面的元素后移。*q=e; //插入元素e。++L.length; //长度增1。return OK;}
1 下一页