顺序表插入(c语言实现)

使用环境devC++ 5.11

当出现ID returned 1 exit status (ID返回1退出状态)时关闭运行结果窗口再重新运行就行,或者重启devC++。

代码如下:

#include<stdio.h>
#include<stdlib.h>		//要使用的malloc()函数定义在这个头文件中 ,动态分配内存 
#include<process.h>		//系统库文件, 

#define MAX 100

typedef struct Seq
{
	int elem[100];
	int length;
	
 }  RSeq;
 
 RSeq init()
 {
 	RSeq *R1;	//结构体指针
	 R1=(struct Seq *)malloc(sizeof(struct Seq));//为顺序表分配内存 
	 R1->length=0;
	 for(int i=0;i<10;i++){		//初始化数组为0,1,2,3,4,5,6,7,8,9 
	 	R1->elem[i]=i;
		 R1->length++;
	 } 
	 return(*R1);//返回结构体 
 }
 
 void display(RSeq Rll)
 {
 	int LL=Rll.length;
	  for(int i=0;i<LL;i++)
	  {
	  	printf("%4d",Rll.elem[i]);
	  	Rll.length++; 
	  }
  } 
  
  void insert(RSeq *L,int k,int x)	//在第n个元素后插入元素x
  {
  	if(k<0||k>L->length){
  		printf("输入的k不合法!");
  		return;	//返回函数继续执行程序 
	  }
	  
	  for(int i=L->length-1;i>=k;i--){
	  	L->elem[i+1]=L->elem[i];	//元素后移动一位
		  
		  L->length++; 
	  } L->elem[k]=x;
   } 
   //以下代码无法实现,正在 
 /*  void addinsert(RSeq *L,int k,int n,int x)
   {
   	if(k<0||k>L->length){
  		printf("输入的k不合法!");
  		return;//返回函数继续执行程序 
	  }
	  for(int z=0;z<=n;z++){
	  	 for(int i=L->length-1;i>=k;i--){
	  	L->elem[i+1]=L->elem[i];	//元素后移动一位
		  L->elem[k]=x;
		  L->length++; 
	  } 
	  }
   }
*/
   int main(){
   	RSeq A;//定义顺序表
	   A=init();
	   insert(&A,3,100);
	   //addinsert(&A,3,5,200);
	   display(A);
	   system("pause"); 
	    
   }

结果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值