顺序表第一课

时间:2021-12-08 20:14:10
#include<stdio.h>
#define MAX 20
typedef struct
{
	int list[MAX];
	int size;//计数作用! 
 }List;//List是结构体名字 
 void ListInitialze(List *L)
 {
 	L->size=0;
 }
 int Listlength(List *L)
 {
	return L->size;
 }
 int ListInsert(List *L, int i, int x)//依次后移 
 {
 	if(L->size==MAX-1)
 	{
 		printf("顺序表已满,不能插入\n");
 		return 0;
	 }
	if(i<0)
	{
		return 0;
	}
	 else
	 {
	 	for(int j=L->size;j>i;j--)
	 	{
	 		L->list[j]=L->list[j-1];
		 }
		 L->list[i]=x;
		 L->size++;
		 return 1;//可以用来判断插入是否成功! 
	 }
 }
 int ListDelete(List *L,int i,int *x)//依次前移 
 {
 	if(L->size==0)
 	{
 		printf("顺序表为空,不可删除\n");
 		return 0;
	 }
	 if(i<0)
	 {
	 	return 0;
	 }
	 else
	 {
	 	if(i==L->size)
	 	{
	 		L->size--;//根据size作为计数,其实并没有把最后一个元素数据删除,只是没有跑到一个点上! 
	 		return 1;
		 }
		else
		{	*x=L->list[i];
			for(int j=i+1;j<L->size;j++)
			{
				L->list[j-1]=L->list[j];
			}
			L->size--;
			return 1;
		 } 
	 }
 }
int ListGet(List *L,int i)
{
 	if(L->size==0||(i<0&&i>((L->size)-1)))
	{
	 	printf("Wrong\n");
		 return 0;	
	}
	else
	{
		int j;
		j=L->list[i];
		printf("%d ",j);
	}
}
main()
{
	List L;
	int i,x;
	ListInitialze(&L);
	for(i = 0; i < 10; i++) 
        ListInsert(&L, i, i+1);
	ListDelete(&L,2, &x);
	for(i=0;i<L.size;i++)
	{
		ListGet(&L, i);
	}
}

#include#define MAX 20typedef struct{int list[MAX];int size;//计数作用! }List;//List是结构体名字 void ListInitialze(List *L) { L->size=0; } int Listlength(List *L) {return L->size; } int ListInsert(List *L, int i, int x)//依次后移 { if(L->size==MAX-1) { printf("顺序表已满,不能插入\n"); return 0; }if(i<0 return="" 0="" else="" for="" int="" j="L-">size;j>i;j--) { L->list[j]=L->list[j-1]; } L->list[i]=x; L->size++; return 1;//可以用来判断插入是否成功! } } int ListDelete(List *L,int i,int *x)//依次前移 { if(L->size==0) { printf("顺序表为空,不可删除\n"); return 0; } if(i<0 return="" 0="" else="" if="" i="=L-">size) { L->size--;//根据size作为计数,其实并没有把最后一个元素数据删除,只是没有跑到一个点上! return 1; }else{ *x=L->list[i];for(int j=i+1;jsize;j++){L->list[j-1]=L->list[j];}L->size--;return 1; } } }int ListGet(List *L,int i){ if(L->size==0||(i<0 i="">((L->size)-1))){ printf("Wrong\n"); return 0;}else{int j;j=L->list[i];printf("%d ",j);}}main(){List L;int i,x;ListInitialze(&L);for(i = 0; i < 10; i++) ListInsert(&L, i, i+1);ListDelete(&L,2, &x);for(i=0;i<L.size;i++){ListGet(&L, i);}}