没有合适的资源?快使用搜索试试~ 我知道了~
C++数据结构实例代码.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 123 浏览量
2022-07-11
07:53:02
上传
评论
收藏 127KB PDF 举报
温馨提示
试读
18页
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(i<1""i>L.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]);
资源推荐
资源详情
资源评论
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(i<1||i>L.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(i<1||i>L.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;i<6;i++){
cout<<a[i]<<" ";
}
cout<<endl;
SqList lx;
Init_Sq(lx);
for(int j=1;j<10;j++){
ListInsert(lx,j,j);
}
ListInsert(lx,3,55);
int e_return;
ListDelete(lx,4,e_return);
for(int m=0;m<10;m++){
cout<<*(lx.elem+m)<<" ";
}
cout<<endl;
cout<<e_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(p&&j<i-1){
p=p->next;
++j;
}
if(!p||j>i-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->next&&j<i-1){
p=p->next;
++j;
}
if(!(p->next)||j>i-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(p&&j<i)
{
p=p->next;
++j;
}
if(!p||j<i)
return 0;
int e=p->data;
return e;
}
int main()
{
LinkList lx;
InitList(lx);
for(int i=1;i<6;i++){
ListInsert(lx,i,i);
}
ListDelete(lx,2);
for(int j=1;j<5;j++)
{
cout<<GetElem(lx,j)<<" ";
}
cout<<endl;
LinkList lx1,lx2;
InitList(lx1);
InitList(lx2);
for(int m=1;m<6;m++){
ListInsert(lx1,m,m);
}
for(int n=1;n<6;n++){
ListInsert(lx2,n,2*n);
}
for(int j=1;j<6;j++)
{
cout<<GetElem(lx1,j)<<" ";
}
system("pause");
return 0;
}
1 3 4 5
1 2 3 4 5 请按任意键继续. . .
3 双向链表
剩余17页未读,继续阅读
资源评论
是空空呀
- 粉丝: 171
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功