顺序表的创建插入和修改

 在数据结构中顺序表属于顺序结构,和链表并列。对顺序表的操作一般有,创建顺序表、遍历顺序表、插入元素在顺序表中、删除某元素以及查找某元素在顺序表中的位置。当然链表也有这些操作,但是相对链表我认为顺序表这些基本操作更容易实现,但是牺牲了程序的时间和空间。

 以下本人以一个完整的程序来说明实现顺序表中的一些操作(主要是插入和删除),程序写得相对简单没有考虑程序的健壮性。

#include<stdio.h>
#include<stdlib.h>
#define SIZE 15	//顺序表长
int Array[SIZE];//顺序表
int length=0;   //存放顺序表的实际表长 
void  InList(int i){ //给顺序表中赋值
	int n=0;
	length=i; 
	while(n<i){
		scanf("%d",&Array[n]);	
		++n;
	}
}
void  InsertList(int j,int data){//插入数据(顺序表为逐个向后移动数据) 
	int len=length-1;
	while(!(len<j-1)){
		Array[len+1]=Array[len];
		--len;
	}
	Array[len+1]=data;
	length++;//数组长度加一 
}
void ListDelete(int q){  //删除某数据(顺序表为覆盖) 
	for(;q<length;q++){
		Array[q-1]=Array[q];
	}
	length--;//实际长度减一 
}
void display(){			//遍历顺序表 
	int y;
	for(y=0;y<length;y++)
		printf("%d\t",Array[y]);
}
void Text(){		//测试函数 
	int i,j,data,q;
	printf("请输入实际数组长度不可大于15:");
	scanf("%d",&i);
	InList(i);
	printf("请输入插入的位置和数值:");
	scanf("%d%d",&j,&data);
	InsertList(j, data);
	display();
	printf("\n");
	printf("请输入删除的位置:");
	scanf("%d",&q);
	ListDelete( q);
	display();
} 
int main(){//主函数 
	
	Text();
	return 0;
} 
 
以上定义顺序表采用的是:
#define SIZE 15	//顺序表长
int Array[SIZE];//顺序表
这种方式。其实还可使用结构体进行定义,比如
typedef struct node{
 	int Array[SIZE];
 	int length;
 }node ; 
还可进行动态声明,比如
typedef struct node{
 	int *Array;
 	int length;
 	int ListSize;
 }node ; 





  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值