⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2-2-1.txt

📁 数据结构源程序
💻 TXT
字号:
/*顺序表的基本运算实现*/
#include <stdio.h>
#include <malloc.h>
#define MAXSIZE 256
typedef int datatype;
typedef struct
{
	datatype data[MAXSIZE];
	int last;
}SeqList;
void menu();
SeqList * init_SeqList();
int Insert_SeqList(SeqList *L,int i,datatype x);
int Delete_SeqList(SeqList *L,int i);
int Location_SeqList(SeqList *L,datatype x);
void main()
{
	int n,m=1;
	SeqList *L;
	/*clrscr();*/
	while(m)
	{
		menu();
		scanf("%d",&n);
		switch(n)
		{
			case 1:L=init_SeqList();break;
			case 2:{
				int i,x,success;/*i为位置号,x为待插入数。*/
				printf("please input i and x:\n");
				scanf("%d,%d",&i,&x);
				success=Insert_SeqList(L,i,x);
				if(success==1)
				{
					for(i=0;i<=L->last;i++)
					{
						printf("%5d",L->data[i]);
					}
				}
				break;
				}
			case 3:{
				int i,success;/*i为位置号.*/
				printf("please input i:\n");
				scanf("%d",&i);
				success=Delete_SeqList(L,i);
				if(success==1)
				{
					for(i=0;i<=L->last;i++)
					{
						printf("%5d",L->data[i]);
					}
				}
				break;
				}
			case 4:{
				int x,success;
				printf("please input a value:\n");
				scanf("%d",&x);
				success=Location_SeqList(L,x);
				if(success==-1)
				{
					printf("Sorry,there isn't this value!\n");
				}
				else
				{
					printf("locate is:%d\nvalue=%5d",success+1,L->data[success]);
				}
				break;
				}
			case 5:m=0;
		}
	}
}
void menu()
{
	/*clrscr();*/
	printf("\n");
	printf("\t\t1.initialization\n\n");
	printf("\t\t2.insert\n\n");
	printf("\t\t3.delete\n\n");
	printf("\t\t4.location\n\n");
	printf("\t\t5.exit\n\n");
	printf("\n\n\n\tplease select:");
}
SeqList * init_SeqList()
{
	SeqList *L;
	L=(SeqList*)malloc(sizeof(SeqList));
	L->last=-1;
	return L;
}
int Insert_SeqList(SeqList *L,int i,datatype x)
{
	int j;
	if(L->last==MAXSIZE-1)
	{
		printf("table is full!");
		return(-1);
	}
	if(i<1||i>(L->last+2))
	{
		printf("place is wrong!");
		return(0);
	}
	for(j=L->last;j>=i-1;j--)
	{
		L->data[j+1]=L->data[j];
	}
	L->data[i-1]=x;
	L->last++;
	return(1);
}
int Delete_SeqList(SeqList *L,int i)
{
	int j;
	if(i<1||i>(L->last+1))
	{
		printf("this element don't exist!");
		return(0);
	}
	for(j=i;j<=L->last;j++)
	{
		L->data[j-1]=L->data[j];
	}
	L->last--;
	return(1);
}
int Location_SeqList(SeqList *L,datatype x)
{
	int i=0;
	while(i<=L->last&&L->data[i]!=x)
	{
		i++;
	}
	if(i>L->last)
	{
		return(-1);
	}
	else
	{
		return i;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -