数据结构---线性表的顺序存储结构

#include 

#define TRUE     1
#define FALSE    0
#define MAXSIZE  19

typedef struct
{
	int data[MAXSIZE];
	int length;
}linklist;

linklist link_list;

int linkInsert(int i, int data)
{
	int k;
	
	if(link_list.length == MAXSIZE)
	{
		return FALSE;
	}

	if(i < 1 || i > link_list.length + 1)
	{
		return FALSE;
	}

	if(i <= link_list.length)
	{
		for(k = link_list.length - 1; k >= i - 1; k--)
		{
			link_list.data[k+1] = link_list.data[k];
		}
	}
	link_list.data[i-1] = data;
	link_list.length++;
	
	return TRUE;
}

int linkDelete(int i)
{
	int k;
	
	if(link_list.length == 0)
	{
		return FALSE;
	}

	if(i < 1 || i > link_list.length)
	{
		return FALSE;
	}

	if(i < link_list.length)
	{
		for(k = i - 1; k < link_list.length - 1; k++)
		{
			link_list.data[k] = link_list.data[k+1];
		}
	}
	
	link_list.length--;

	return TRUE;
}

int linkPrintf()
{
	int i;

	for(i = 0; i < link_list.length; i++)
	{
		printf("data[%d] = %d num = %d\n", i, link_list.data[i], link_list.length);
	}

	return TRUE;
}

int main(int argc, char* argv[])
{
	int m, n, k;
	while(1)
	{
		printf("please input i and data\n");
		scanf("%d%d", &m, &n);
		linkInsert( m, n);
		linkPrintf();
		printf("is delete data?y/n\n");
		scanf("%d", &k);
		if(k)
		{
			linkDelete(k);
			linkPrintf();
		}
	}
	return 0;
}

(未完待编辑)

你可能感兴趣的:(数据结构)