#include <stdio.h>
#define maxsize 50
typedef int elemtype;
typedef struct{
elemtype data[maxsize];
int length;
}sqlist;
void listinsert(sqlist &l,int pos,elemtype insertval)
{
if(pos<1||pos>l.length+1){
return;
}
for(int j=l.length;j>=pos;j--){
l.data[j]=l.data[j-1];
}
l.data[pos-1]=insertval;
l.length++;
}
void printlist(sqlist l){
int i;
for(i=0;i<l.length;i++){
printf("%3d",l.data[i]);
}
printf("\n");
}
int listdelete(sqlist &l,int i,int &q){
if(i<1||i>l.length){
return false;
}
q=l.data[i-1];
for(int j=i;j<l.length;j++){
l.data[j-1]=l.data[j];
}
l.length--;
return q;
}
int main(){
sqlist l;
l.data[0]=1;
l.data[1]=2;
l.data[2]=3;
l.length=3;
elemtype insertval;
scanf("%d",&insertval);
listinsert(l,4,insertval);
printlist(l);
int deletepos;
int ret,q;
scanf("%d",&deletepos,&q);
listdelete(l,deletepos,q);
printf("%d\n",q);
printlist(l);
return 0;
}
天才在于积累,聪明在于勤奋,勤能补拙是良训,一分辛苦一分才。
今日理解和手打的代码
#include <stdio.h> #define maxsize 50 typedef int elemtype; typedef struct{ elemtype data[maxsize]; int length; }sqlist; void listinsert(sqlist &l,int pos,elemtype insertval) { if(pos<1||pos>l.length+1)//我知道这个为什么是加一了,因为设置了length大于maxize一个,L.Lengrh是位序,而数组从零开始,所以大一,总共有四个位置,而这个插入的位置呢也得是4,但是基础是3 { return; } for(int j=l.length;j>=pos;j--){ l.data[j]=l.data[j-1]; } l.data[pos-1]=insertval; l.length++; } void printlist(sqlist l){ int i; for(i=0;i<l.length;i++){ printf("%3d",l.data[i]); } printf("\n"); } int listdelete(sqlist &l,int i,int &q){ if(i<1||i>l.length){ return false; } q=l.data[i-1]; for(int j=i;j<l.length;j++){ l.data[j-1]=l.data[j]; } l.length--; return q; } int main(){ sqlist l; l.data[0]=1; l.data[1]=2; l.data[2]=3; l.length=3; elemtype insertval; scanf("%d",&insertval); listinsert(l,4,insertval); printlist(l); int deletepos; int ret,q; scanf("%d",&deletepos,&q); listdelete(l,deletepos,q); printf("%d\n",q); printlist(l); return 0; }
该好好加油了,卧槽快考不上了
每天都得打代码练习了