数据结构 顺序表的基本操作:建立、插入、删除、查找、合并、打印等运算

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:12:39
(包含有头文件和main函数)
谢谢奉上正确的程序!!

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>

#define LIST_INIT_SIZE 100

#define LISTINCREMENT 10
typedef struct{
int *elem;
int length;
int listsize;
}SqList;
int InitList_Sq(SqList &L){
L.elem = (int *) malloc (LIST_INIT_SIZE * sizeof (int));
if(! L.elem) exit(-1);
L.length = 0;
L.listsize = LIST_INIT_SIZE;
return 1;

}
int ListInsert_Sq(SqList &L,int i,int e){
if(i < 1 || i > L.length+1) return 0;
if(L.length >= L.listsize){
int * newbase = (int *)realloc(L.elem,(L.listsize + LISTINCREMENT) * sizeof(int));
if(!newbase) return -1;
L.elem = newbase;
L.listsize += LISTINCREMENT;
}
int *q = &(L.elem[i-1]);
for(int *p = &(L.elem[L.length - 1]); p >= q; -- p) * (p + 1) = *p;
*q = e;
++L.length;
return 1;
//print(L);
}
int ListDelete_Sq(SqList &L, int i, int &e){
if