创建一个顺序表,插入元素后将其元素输出,我的程序在VC++6.0中可通过,但结果不符,请各位大侠指点一下 #include"iostream.h" #include"stdlib.h"
typedef int status; const int listsq_size = 50; //顺序表的最大容量
typedef struct node { //定义顺序表 status *data; status length; status list_size; } Lnode; void initlist(Lnode &L) { //初始化顺序表 L.data = (status *) malloc (sizeof(Lnode)); //注意这里是status *不是struct node * if(! L.data) return; L.length = 0; L.list_size = listsq_size; }
void insert_list(Lnode &L, int i, status e) { //插入元素 if(i < 1 || i > L.length + 1) return ; status * q = &(L.data[i - 1]); for(status * p = &(L.data[L.length - 1]); p >= q; p--) *(p + 1) = *p; *p = e; L.length++; }
void print_list(Lnode &L) { //输出顺序中的元素 int k; for(k = 0; k <= L.length; k++) cout << L.data[k] << " \t "; }
void main() { Lnode A; initlist(A); insert_list(A, 1, 5); print_list(A); insert_list(A, 2, 3); }