C++数据结构实例代码Word格式文档下载.docx
《C++数据结构实例代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++数据结构实例代码Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
return0;
if(L.length>
=L.listsize){
int*newbase=(int*)realloc(L.elem,(L.listsize+10)*sizeof(int));
newbase)
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;
intListDelete(SqList&
L,inti,int&
e){if(i<
L.length)return0;
e=*p;
int*q=L.elem+L.length-1;
for(++p;
p<
++p){
*(p-1)=*p;
--L.length;
returne;
intmain(){
inta[6]={1,2,3,4,5};
a[1];
a[4];
for(p;
--p){*(p+1)=*p;
*q=3;
for(inti=0;
i<
6;
i++){cout<
<
a[i]<
"
;
}cout<
endl;
SqListlx;
Init_Sq(lx);
for(intj=1;
j<
10;
j++){ListInsert(lx,j,j);
ListInsert(lx,3,55);
inte_return;
ListDelete(lx,4,e_return);
for(intm=0;
m<
m++){cout<
*(lx.elem+m)<
}cout<
cout<
e_return;
system("
pause"
);
return0;
132345
12554567899
3请按任意键继续...
2线性表的链性表示#include"
#include"
usingnamespacestd;
typedefstructLNode{
intdata;
structLNode*next;
}LNode,*LinkList;
intInitList(LinkList&
L)
{
L=(LinkList)malloc(sizeof(LNode));
L->
next=NULL;
intListInsert(LinkList&
L,inti,inte)
LinkListp=L;
intj=0;
while(p&
&
i-1){p=p->
next;
++j;
if(!
p||j>
i-1)return0;
LinkLists=(LinkList)malloc(sizeof(LNode));
s->
data=e;
s->
next=p->
p->
next=s;
intListDelete(LinkList&
L,inti)
while(p->
next&
(p->
next)||j>
LinkListq=p->
next=q->
free(q);
intGetElem(LinkListL,inti)
LinkListp=L->
intj=1;
i)
p=p->
++j;
p||j<
inte=p->
data;
intmain()
LinkListlx;
InitList(lx);
for(inti=1;
i++){
ListInsert(lx,i,i);
ListDelete(lx,2);
5;
j++)
GetElem(lx,j)<
LinkListlx1,lx2;
InitList(lx1);
InitList(lx2);
for(intm=1;
m++){
ListInsert(lx1,m,m);
for(intn=1;
n<
n++){ListInsert(lx2,n,2*n);
GetElem(lx1,j)<
}system("
1345
12345请按任意键继续...
3双向链表
#include"
typedefstructdlist
InitList(DLinkList&
structdlist*prior;
structdlist*next;
}DList,*DLinkList;
void
sizeof(DList));
L=(DLinkList)malloc(
L->
next=L;
prior=L;
intGetElem(DLinkList&
DLinkListp,s;
p=L->
i){p=p->
returne;
DLinkListlx;
i++)
{ListInsert(lx,i,2*i-1);
j++){cout<
inte;
ListDelete(lx,2,e);
e<
system("
13579
3
1579请按任意键继续...
4顺序栈
#defineSTACK_INIT_SIZE100〃存?
?
储?
e空?
间?
初?
始0?
分O?
配?
量C?
#defineSTACKINCREMENT10存?
?
增?
typedefstruct{
int*base;
int*top;
intstacksize;
}Stack;
intInitStack(Stack&
S)
S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));
S.base)
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
intGetTop(Stack&
S,int&
e)
if(S.top==S.base)
e=*(S.top-1);
intPush(Stack&
S,inte)
if(S.top-S.base>
=S.stacksize){
S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
*S.top++=e;
intPop(Stack&
e=*--S.top;
Stacklx;
InitStack(lx);
Push(lx,i);
}inte;
GetTop(lx,e);
cout<
inte1;
Pop(lx,e1);
e1<
GetTop(lx,e1);
5
4请按任意键继续...
5队列#include"
typedefstructQNode{intdata;
structQNode*next;
}QNode,*QueuePtr;
QueuePtrfront;
QueuePtrrear;
}LinkQueue;
intInitQueue(LinkQueue&
Q){
Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));
Q.front)
Q.front->
return1;
intDestroyQueue(LinkQueue&
Q)
while(Q.front){Q.rear=Q.front->
free(Q.front);
Q.front=Q.rear;
}return1;
intInsert(LinkQueue&
Q,inte)
QueuePtrp=(QueuePtr)malloc(s