您好,請教一下關(guān)于數(shù)據(jù)結(jié)構(gòu)問題,為什么我的怎么輸不出內(nèi)容???
#include<stdio.h>#include <malloc.h>#define MaxSize 50typedef char ElemType;typedef struct{ElemType data[MaxSize];int length;}SqList;void InitList(SqList *&L) //初始化順序表L{L=(SqList *)malloc(sizeof(SqList));L->length;}void DestroyList(SqList *L)// 釋放順序表L{free(L);}int ListEmpty(SqList *L) // 判斷順序表L是否為空表{return(L->length==0);}int ListLength(SqList *L)//還回順序表L的元素個(gè)數(shù){return (L->length);}void DispList(SqList *L) //輸出順序表L{int i;if(ListEmpty(L)) return ;for(i=0;i<=L->length;i++){printf("%c",L->data[i]);}printf("\n");}int GetElem (SqList *L,int i, ElemType &e) // 獲取順序表L 中第i個(gè)元素{if(i<1||i>L->length)return 0;e=L->data[i-1];return 1;}int LocateElem(SqList *L,ElemType e) //在順序表L中查找元素e{int i=0;while(i<L->length&& L->data[i]!=e) i++;if(i>=L->length)return 0;elsereturn i+1;}int ListInsert(SqList * &L,int i,ElemType e)//在順序表L中第i個(gè)位置上插入元素e{int j;if(i<1||i>L->length+1)return 0;i--;for(j=L->length;j>i;j--)L->data[j]=L->data[j-1];L->data[i]=e;L ->length++;return 1;}int ListDelete(SqList * &L,int i, ElemType &e){int j;if(i<1||i>L->length)return 0;i--;e=L->data[i];for (j=i;j<L->length-1;j++){L->data[j]=L->data[j+1];}L->length--;return 1;}int main(){SqList *L;ElemType e;printf("(1)初始化順序表L\n");InitList(L);printf("(2)依次采用尾插法插入 a,b,c,d,e 元素\n");ListInsert(L,1,'a');ListInsert(L,2,'b');ListInsert(L,3,'c');ListInsert(L,4,'d');ListInsert(L,5,'e');printf("(3)輸出順序表L:");DispList(L);printf("(4) 順序表L長度=%d\n",ListLength(L));printf("(5) 順序表L 為%s\n",(ListEmpty(L) ? "空":"非空"));GetElem(L,3,e);printf("(6)順序表L的第3個(gè)元素=%c\n",e);printf("(7)元素a的位置=%d\n",LocateElem(L,'a'));printf("(8)在第4個(gè)元素位置上插入f元素\n");ListInsert(L,4,'f');printf("(9)輸出順序表L:");DispList(L);printf("(10)刪除L的第3個(gè)元素\n");ListDelete(L,3,e);printf("(11)輸出順序表L:");DispList(L);printf("(12)釋放順序表L\n");DestroyList(L);return 0;}
查看完整描述