数据结构-顺序表得实现-删除插入初始化打印

/*
	时间:2016-9-29
*/
# include<stdio.h>
# include<stdlib.h>
# include<string.h>
# include "iostream"
using namespace std;
typedef struct {
	int *elem;
	int length;
	int listsize;
}sqList;
void print_listL(sqList* L);//打印顺序表
int Insert_Sq(sqList *L,int L_location,int L_num);//插入顺序表
int InitList_Sq(sqList*L,int number);//初始化顺序表
int Delete_Sq(sqList* L,int L_location);//删除顺序表
int main(void)
{
	while(1)
	{
		sqList l;															int number,operation;											
		printf("please print number and operation: ");				
		scanf("%d %d",&number,&operation);
		if (number==0&&operation==0)
		break;
		InitList_Sq(&l,number);
		char string[64];
		int l_location,l_num;
		while (operation--)												
		{
			cout<<"please print 'insert'or'delete',location and number: ";
			scanf("%s %d %d",string,&l_location,&l_num);
			if (strncmp(string,"insert",6)==0)
			{
				Insert_Sq(&l,l_location,l_num);
				print_listL(&l);
				continue;
			}
			if(strncmp(string,"delete",6)==0)
			{
				Delete_Sq(&l,l_location);
				print_listL(&l);
				continue;
			}
		}
		if (!l.elem)exit(0);
		free(l.elem);
	}
	system("pause");
	return 0;
}

void print_listL(sqList* L)
{
	for (int i = 0;i!=L->length;i++)
	{
		printf("%d ",L->elem[i]);
	}
}
int Insert_Sq(sqList *L,int L_location,int L_num)
{
	L->elem = (int*)realloc(L->elem,sizeof(int)*(L->length+1));
	int i = L->length;
	for (;i!=L_location-1;--i)
	{
		L->elem[i] = L->elem[i-1];
	}
	L->elem[i] = L_num;
	L->length++;
	L->listsize++;
	return 0;
}
int InitList_Sq(sqList*L,int number)
{
	L->elem = (int*)malloc(sizeof(int)*number);
	if (!L->elem){printf("error");exit(0);}
	L->length = number;
	L->listsize = number;
	for (int i = 0;i!=L->length;i++)
	{
		scanf_s("%d",L->elem + i);
	}
	return 0;
}
int Delete_Sq(sqList* L,int L_location)
{
	int i = L_location - 1;
	for (;i!=L->length-1;i++)
	{
		L->elem[i] = L->elem[i+1];
	}
	L->length--;
	L->listsize--;
	return 0;
}
输出结果:
<img src="https://img-blog.csdn.net/20160929124937534?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值