선형 표 의 기본 조작 - 데이터 구조

2233 단어 데이터 구조
주로 선형 표 의 구축, 삭제, 삽입 이다.
전체 코드:
#include
#include
#include
#include
using namespace std;

#define MAXSIZE 100
#define List_Init_Size 50
#define Increase 20
#define OK 1
#define ERROR 0
#define OVERFLOW -1

typedef int Statue;
typedef int Elemtype;
typedef struct Sqlist
{
	Elemtype *ElemArry;
	int length;
	int Listsize;
}Sqlist;

Statue InitList(Sqlist &L)
{
	L.ElemArry=(Elemtype*)malloc(List_Init_Size*sizeof(Elemtype)); 
	if(!L.ElemArry) exit(OVERFLOW);
	L.length=0;
	L.Listsize=List_Init_Size;
	return OK;
}

void CreatList(Sqlist &L)
{
	int n,i;
	cout<>n;
	cout<>L.ElemArry[i];
	L.length=n;
}

bool Emptylist(Sqlist L)
{
	if(L.length==0) return true;
	else return false;
}

Statue Listlength(Sqlist L)
{
	return L.length;
}

Elemtype Getelem(Sqlist L,int i)
{
	return L.ElemArry[i-1];
}

Statue Findelem(Sqlist L,Elemtype key)
{
	int i;
	for(i=0;iListlength(L)+1) return ERROR;
	if(Listlength(L)>=L.Listsize)
	{
		Elemtype *newbase;
		newbase=(Elemtype*)realloc(L.ElemArry,(L.Listsize+Increase)*sizeof(Elemtype));
		L.ElemArry=newbase;
		L.Listsize+=Increase;
	}
	Elemtype *p,*q;
	q=&L.ElemArry[i-1];
	for(p=&L.ElemArry[Listlength(L)];p>=q+1;p--)
		*(p)=*(p-1);
	*q=key;
	L.length++;
	return OK;
	
}

Statue DeletElem(Sqlist &L,int i)
{
	if(i<1 || i>L.length) return ERROR;
	Elemtype *p,*q;
	p=&L.ElemArry[i];
	q=L.ElemArry+L.length;
	for(p=p;p<=q;p++) *(p)=*(p+1);
	L.length--;
	return OK;
}

void Print(Sqlist L)
{
	int i;
	if(L.length<1) cout<>operate;
		switch(operate)
		{
			case 1:if(Emptylist(L)) cout<>i;
					if(i>Listlength(L) || i<0) cout<>e;
					t=Findelem(L,e);
					if(t)
						cout<>e;
					t=Priorelem(L,e);
					if(t) cout<>e;
					t=Nextelem(L,e);
					if(t) cout<>e>>i;
					t=InsertElem(L,i,e);
					if(t)
					{
						cout<>i;
					t=DeletElem(L,i);
					if(t)
					{
						cout<

좋은 웹페이지 즐겨찾기