數據結構:線性表

//~list.h
//:線性表的構造 成員是int型,包含insert(int position,int value),delete(int posion),find(int value),
//clear(),getElem(),getlength()  initlist(*L)
#include<stdio.h>
#define MAXSIZE 20
typedef int ElemType;
#define  OK 0
#define  ERROR -1
#define  TRUE 1
#define  FAISE 0



typedef struct
{
	ElemType data[MAXSIZE];
	int length;
}List;


int  initlist(List L)
{
	//L.data[MAXSIZE]
    L.length=0;
	return OK;
}

int GetElem(List L,int i,ElemType *e)
{
	if(L.length==0 || i<0 || i>L.length-1)
		return ERROR;
	*e = L.data[i];
	return OK;
}

int InsertList(List *L,int i,ElemType e)
{
	int k;
	if(L->length==MAXSIZE)
		return ERROR;
	if(i<0 || i>L->length)
		return ERROR;
	for (k=L->length;k>=i;k--)
	{
		L->data[k]=L->data[k-1];
	}
	L->data[i]=e;
	L->length++;
	return OK;
}

int PrintList(List L)
{
	int i;
	if (L.length==0)
	{
		printf("List is EMPTY\n");
	}
	else
	{
        for (i=0;i<L.length;i++)
		{
			printf("%d ",L.data[i]);
		}
	}
	return OK;
}

int DeleteElem(List *L,int i,ElemType *e)
{
	int k;
	if(L->length==0)
	{
		return ERROR;
	}
	if(i<0 || i>L->length-1)
	{
		return ERROR;
	}
	
	{
        *e=L->data[i];
		for (k=i;k<L->length;k++)
		{
			L->data[k]=L->data[k+1];
		}
		L->length--;
		return OK;
	}
}
//:list.cpp
#include "list.h"
List list;

int main()
{
	List *list1=&list;
    int *e;
	initlist(list);
    InsertList(list1,0,10);
	InsertList(list1,1,20);
	DeleteElem(list1,0,e);
	PrintList(list);
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章