线性表
发布时间:2020-12-16 07:48:44 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #includestdio.h #includemalloc.h #define M 10000 typedef struct Xian { int *ap;//数据段 int length;//表的长度 }jie; void Initialization(jie*
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 #include<stdio.h> #include<malloc.h> #define M 10000 typedef struct Xian { int *ap;//数据段 int length;//表的长度 }jie; void Initialization(jie* p)//初始化表 { p->ap=new int[M]; //p->ap=(int *)malloc(sizeof(int)*M); p->length=0; } bool Empty(jie* p)//判断表空 { if(p->length==0) return true; return false; } bool Full(jie* p) //判断表是否已满 { if(p->length==M-1) return true; return false; } void Add(jie* p) //添加 { if(Full(p)) { printf("内存已满n"); return; } int a; scanf("%d",&a); p->ap[p->length]=a; p->length++; } void Insert(jie* p,int index,int e) //插入 { if(Full(p)) { printf("内存已满n"); return; } if(index>p->length) { p->ap[p->length]=e; p->length++; return; } else { for(int i=p->length-1;i>index;--i) p->ap[i+1]=p->ap[i]; p->ap[index-1]=e; p->length++; return ; } } void Delet(jie* p,int index) // 删除 { if(index>p->length||index<1) return; else { for(int i=index-1;i<p->length;++i) p->ap[i]=p->ap[i+1]; p->length--; } } int *Search(jie* p,int index)//查找 { if(index<1||index>p->length) return NULL; else { for(int i=0;i<p->length;++i) { if(i==index-1) return &p->ap[index-1]; } } } void PutAll(jie* p) //输出所有数据 { for(int i=0;i<p->length;++i) printf("%dn",p->ap[i]); } void Destroy(jie* p)//摧毁线性表 { p->length=0; delete p->ap; //free(p->ap); } int main() { jie* pos; pos=new jie; //为指针分配内存 Initialization(pos); Add(pos); Add(pos); Add(pos); Insert(pos,2,9); Delet(pos,4); PutAll(pos); return 0; } #include<iostream> int main(){ int i=5; int &j=i; //为i取了一个别名j,相当于i和j是指的同一个变量; i=7; cout<<"i="<<i<<" j="<<j; } 输出结果是了两个7;因为变量j只是i的一个别名;只要i、j只要一个变化另一个自然也变了; #include<stdio.h> #include<malloc.h> #define M 10000 typedef struct Xian { int *ap;//数据段 int length;//表的长度 }jie; void Initialization(jie &p)//初始化表 { p.ap=new int[M]; //p->ap=(int *)malloc(sizeof(int)*M); p.length=0; } bool Empty(jie &p)//判断表空 { if(p.length==0) return true; return false; } bool Full(jie &p) //判断表是否已满 { if(p.length==M-1) return true; return false; } void Add(jie &p) //添加 { if(Full(p)) { printf("内存已满n"); return; } int a; scanf("%d",&a); p.ap[p.length]=a; p.length++; } void Insert(jie &p,int e) //插入 { if(Full(p)) { printf("内存已满n"); return; } if(index>p.length) { p.ap[p.length]=e; p.length++; return; } else { for(int i=p.length-1;i>index;--i) p.ap[i+1]=p.ap[i]; p.ap[index-1]=e; p.length++; return ; } } void Delet(jie &p,int index) // 删除 { if(index>p.length||index<1) return; else { for(int i=index-1;i<p.length;++i) p.ap[i]=p.ap[i+1]; p.length--; } } int *Search(jie &p,int index)//查找 { if(index<1||index>p.length) return NULL; else { for(int i=0;i<p.length;++i) { if(i==index-1) return &p.ap[index-1]; } } } void PutAll(jie &p) //输出所有数据 { for(int i=0;i<p.length;++i) printf("%dn",p.ap[i]); } void Destroy(jie &p)//摧毁线性表 { p.length=0; delete p.ap; //free(p->ap); } int main() { jie pos; Initialization(pos); Add(pos); Add(pos); Add(pos); Insert(pos,4); PutAll(pos); return 0; } 用引用便于移植,比如java等没有指针这个概念的,就用引用来写; 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |