`
birthdog
  • 浏览: 9513 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

顺序表的插入删除

c 
阅读更多
#include"stdio.h"
#include"malloc.h"

#define MAXSIZE 100

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

int InitList(List * &p)
{
	p = (List *)malloc(sizeof(List));
	if(p== NULL)
	{
		printf("Can not distribute memory\n");
		return 0;
	}
	else
	{
		(*p).length = 0;
		return 1;
	}
}


int insertList(List *p, int position, int x)
{
	if(position<0 || position >p->length)
	{
		printf("the position is not well !\n");
		return 0;
	}
	if(position == MAXSIZE)
	{
		printf("the list is full!\n");
		return 0;
	}
	for(int i=p->length;i>position;i--)
	{
		p->data[i+1] = p->data[i];
	}
	p->data[position] = x;
	p->length = ++p->length;
	return 1;
}

void deleteList(List *p, int position, int &x)
{
	if(position <0 || position >= p->length)
	{
		printf(" the position is not suitable");
		x = -1;
	}
	else
	{
		x = p->data[position];
		for(int i=position;i<p->length;i++)
			p->data[i] = p->data[i+1];
		p->length = p->length - 1;
	}
}

void displayList(List *p)
{
	printf("The list: ");
	for(int i=0;i<p->length;i++)
	{
		printf("%d  ",p->data[i]);
	}
	printf("\n");
}

void main()
{
	List *p;
	InitList(p);
	for(int i=0;i<5;i++)
		insertList(p,i,i);
	displayList(p);
	int x;
	deleteList(p,2,x);
	printf("The deleted element is %d\n",x);
	displayList(p);
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics