数据结构 线性表顺序结构 代码实现

线性表顺序结构及相应操作

#include <stdio.h>
#include <stdlib.h> 
#define maxsize 10
//数据类型定义//
typedef struct {int elem[maxsize];int length;}sqlist;
typedef int status;
//函数调用声明//
void init (sqlist *L);
void enter (sqlist *L,int n);
int delete_(sqlist *L ,int t);
int find (sqlist *L);
void print (sqlist*L);
int add (sqlist *L,int t,int o);
 int n;//实际下标// 
 sqlist L;
int main()
{       
        int c,t,y,x; 
         init (&L);
         printf ("输入几个数:\n");
         scanf ("%d",&n);
         enter (&L,n);
         c=find (&L);
         if (c!=1)
         printf ("error\n");
          printf ("%删除第?个数\n");
         scanf ("%d",&t);
		 delete_(&L,t);
		 print (&L);
		 printf ("插入第?个位置:");
		 scanf ("%d%d",&y,&x);
		 add (&L,y,x);
		 print (&L);
         return 0;	
} 
//初始化//
void init (sqlist *L)
{
	(*L).length=0; //表长置空//
	printf ("初始化成功\n");	
}
void print (sqlist*L)
{
	int i;                 //输出//
	for (i=0;i<(*L).length;i++)
	{
		printf ("%d ",(*L).elem[i]);
	}
}
void enter (sqlist *L,int n)
{
	int i,t;
	if (n<1||maxsize<n)      //判断表长是否合法//
	{
	printf ("error\n");
	exit (1);
}
	for (i=0;i<n;i++)
	{                         //循环输入//
		scanf ("%d",&t);
		(*L).elem[i]=t;
		(*L).length++;         //输入一次表长加一//
		
	}
	printf ("表长:%d\n",(*L).length);
	printf ("完毕\n");
}
int find (sqlist *L)
{
	int t,i;                      //通过循环进行位置查找//
	printf ("查找第?个数\n");
	scanf ("%d",&t);
	for (i=0;i<(*L).length;i++) 
	{
		if (i==(t-1))
		{
		printf ("%d\n",(*L).elem[i]);
		printf ("完毕\n");
		return 1;
		}
	}	
}
int delete_(sqlist *L ,int t)          //删除//
{
	int i;
	for (i=t-1;i<(*L).length;i++)
	{
		(*L).elem[i]=(*L).elem[i+1];
	}
	(*L).length--;
	return 1;
}
int add (sqlist *L,int t,int o)
{                         //插入//
	int i;
	for (i=(*L).length-1;i>=t-1;i--)
	{
		(*L).elem[i+1]=(*L).elem[i];
	}
	(*L).elem[t-1]=o;
	(*L).length++;
	return 1;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值