|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- //动态创建一长度为10的顺序表,向表中输入15个整数,并删除第五个元素
- #include <stdio.h>
- #include <stdlib.h>
- #define Max 10
- typedef struct {
- int *elem;
- int len;
- int listsize;
- }Sqlist;void initSqlist(Sqlist *l) {
- l->elem = (int *)malloc(Max*sizeof(int));
- if(!(l->elem)) {
- printf("动态创建顺序表失败!\n");
- exit(0);
- }
- l->len = 0;
- l->listsize = Max;
- // printf("success!\n");
- }void InsertSqlist(Sqlist *l, int n, int e) {
- int i;
- int *base, *des, *sor;
- if(n<1 || n>l->len+1) {
- printf("非法插入!");
- return;
- }
- if(l->len >= l->listsize) {
- base = (int *)realloc(l->elem,l->listsize+10*sizeof(int));
- if(!base) {
- printf("插入失败!\n");
- exit(0);
- }
- l->elem = base;
- l->listsize=l->listsize+10;
- printf("success!\n%d\n",l->listsize);
- }
- // printf("success!\n%d\n",l->listsize);
- des = &(l->elem[i-1]);
- // printf("success!\n%d\n",l->listsize); for(/*l->len==0?(sor=&(l->elem[0])):(sor=&(l->elem[l->len-1]))*/sor=&(l->elem[l->len-1]); /*printf("success1!\n")*/sor>=des; sor--) {
- // printf("success!\n");
- if(l->len==0) { printf("success!\n");*des=e;}
- else
- *(sor+1) = *sor;
- }
- *des = e;
- l->len++;
- }void DelSqlist(Sqlist *l, int n) {
- int i;
- if(n<1 || n>l->len+1) {
- printf("非法删除!\n");
- return;
- }
- for(; n<l->len; n++) {
- l->elem[n-1] = l->elem[n];
- }
- l->len--;
- }main() {
- Sqlist l;
- int i;
- initSqlist(&l);
- for(i=0; i<15; i++) {
- InsertSqlist(&l,i+1,i+1);
- }
- for(i=0; i<l.len; i++) {
- printf("%d ",l.elem[i]);
- }
- printf("\n表大小:%d\n",l.listsize); printf("删除第五个元素:\n");
- DelSqlist(&l,5);
- for(i=0; i<l.len; i++) {
- printf("%d ",l.elem[i]);
- }
- printf("\n\n");
- }
-
复制代码 //动态创建一长度为10的顺序表,向表中输入15个整数,并删除第五个元素
运行总出错,我挑不出来了,来求助
|
|