C++数据结构实例代码.docVIP

  • 1
  • 0
  • 约1.17万字
  • 约 18页
  • 2020-02-27 发布于江苏
  • 举报
1 线性表的顺序表示 #include iostream #include malloc.h using namespace std; typedef struct{ int *elem; int length; int listsize; }SqList; int Init_Sq(SqList L){ L.elem=(int *)malloc(100*sizeof(int)); if(!L.elem) exit(-2); L.length=0; L.listsize=100; return 1; } int ListInsert(SqList L,int i,int e){ if(i1||iL.length+1) return 0; if(L.length=L.listsize){ int *newbase=(int *)realloc(L.elem,(L.listsize+10)*sizeof(int)); if(!newbase) exit(-2); L.elem=newbase; L.listsize+=10; } int *q=(L.elem[i-1]); int *p=(L.elem[L.length-1]); for(p;p=q;--p){ *(p+1)=*p; } *q=e; ++L.length; return 1; } int ListDelete(SqList L,int i,int e){ if(i1||iL.length) return 0; int *p=(L.elem[i-1]); e=*p; int *q=L.elem+L.length-1; for(++p;p=q;++p){ *(p-1)=*p; } --L.length; return e; } int main(){ int a[6]={1,2,3,4,5}; int *q=a[1]; int *p=a[4]; for(p;p=q;--p){ *(p+1)=*p; } *q=3; for(int i=0;i6;i++){ couta[i] ; } coutendl; SqList lx; Init_Sq(lx); for(int j=1;j10;j++){ ListInsert(lx,j,j); } ListInsert(lx,3,55); int e_return; ListDelete(lx,4,e_return); for(int m=0;m10;m++){ cout*(lx.elem+m) ; } coutendl; coute_return; system(pause); return 0; } 1 3 2 3 4 5 1 2 55 4 5 6 7 8 9 9 3请按任意键继续. . . 2 线性表的链性表示 #include iostream #include malloc.h using namespace std; typedef struct LNode { int data; struct LNode *next; }LNode,*LinkList; int InitList(LinkList L) { L=(LinkList)malloc(sizeof(LNode)); L-next=NULL; return 1; } int ListInsert(LinkList L,int i,int e) { LinkList p=L; int j=0; while(pji-1){ p=p-next; ++j; } if(!p||ji-1) return 0; LinkList s=(LinkList)malloc(sizeof(LNode)); s-data=e; s-next=p-next; p-next=s; return 1; } int ListDelete(LinkList L,int i) { LinkList p=L; int j=0; while(p-nextji-1){ p=p-next; ++j; } if(!(p-next)||ji-1) return 0; LinkList q=p-next; p-next=q-next; free(q); return 1; } int GetElem(LinkList L,int i) { LinkList p=L-next; int j=1; while(pji) { p=p-next; ++j; } if(!p||ji

文档评论(0)

1亿VIP精品文档

相关文档