第三周 --顺序表 的基本运算
来源:互联网 发布:冒险岛伴侣官方域名 编辑:程序博客网 时间:2024/05/23 01:12
问题及描述:
/* *Copyright (c) 2017, 烟台大学计算机学院 *All rights reserved. *文件名称:渣.cpp *作 者:范宝磊 *完成日期:2017年9月18日 *版 本 号:v1.0 * *问题描述:顺序表基本算法的实现 *输入描述:一组数 *程序输出:见程序运行截屏 */ #include<iostream>///共实现了顺序表的十个基本算法 #include<stdlib.h> using namespace std; # define listinitsize 100 typedef struct { int *elem; int length; int listsize; }sqlist; int initlist(sqlist &p)///初始化 { p.elem=(int *)malloc(listinitsize*sizeof(int)); if(!p.elem) return 0; p.length=0; p.listsize=listinitsize; return 1; } void creat(sqlist &p,int k)///创建顺序表 { int i; for(i=0;i<k;i++) { cin>>p.elem[i]; p.length++; } } void display(sqlist &p)///输出 { int i=0; if(p.length==0) { cout<<"该顺序表为空"<<endl; return;///自己对return的认识太片面了! } while(i!=p.length-1) { cout<<p.elem[i]<<' '; i++; } cout<<p.elem[i]<<endl; } int listempty(sqlist &p)///是空返回1,不是空返回0 { if(!p.length) return 1; else return 0; } void zhiweiempty(sqlist &p)///将顺序表置为空表 { p.length=0; } int listlength(sqlist &p)///求顺序表的长度 { return p.length; } int getelem(sqlist &p,int q)///求顺序表中的第q个元素,若不存在,则返回零 { int i=1; while(i!=q) { i++; } if(i<p.length&&i==q) return p.elem[i-1]; else return 0; } int donglist(sqlist &p,int f)///求顺序表中第一个与输入元素相同的元素的逻辑序号 { int i=0; while(p.elem[i]!=f&&i<p.length) { i++; } if(i<=p.length-1) return i+1; else return 0; } int insertlist(sqlist &p,int n,int m)///在顺序表的第n个位置插入新元素 { int i; if(n>p.length+1||n<1)///若插入位置错误则结束函数调用 return 0; for(i=p.length;i>=n;i--) { p.elem[i]=p.elem[i-1]; } p.elem[n-1]=m; p.length++; return 0; } int deletelist(sqlist &p,int n)///删除顺序表的第n个元素 { int i; if(n<1||n>p.length) return 0; for(i=n-1;i<p.length-1;i++) { p.elem[i]=p.elem[i+1]; } p.length--; return 0; } void destroylist(sqlist *&x) { free(x); cout<<"顺序表已被销毁"<<endl; } int main() { sqlist p,*x; x=&p; int k,s,h,z,g,c,e,w,u,r,b; cin>>k; initlist(p); ///初始化 creat(p,k); display(p); cin>>r; deletelist(p,r); display(p); cin>>u>>b; insertlist(p,u,b); display(p); cin>>c; g=getelem(p,c); cout<<g<<endl; cin>>e; w=donglist(p,e); cout<<w<<endl; z=listlength(p); cout<<z<<endl; s=listempty(p); cout<<s<<endl; zhiweiempty(p); h=listempty(p); cout<<h<<endl; display(p); destroylist(x);///虽然我们刚刚申请到的内存空间被释放掉了,但其中的值并没有消失!!! display(p); cout<<x->elem[5]<<endl;///这个还是很有意思的,通过程序的运行结果我们知道数据仍然存在! return 0; }
运行结果 :学习 心得:
学会了如何利用查找算法实现顺序表的查找 ,有些地方竟然有些胆怯,不敢立马敲;总结起来到底还是写得少呀!
阅读全文
0 0
- 第三周--顺序表的基本运算
- 第三周 --顺序表 的基本运算
- 第三周 --顺序表 的基本运算
- 第三周 顺序表的基本运算
- 第三周 --顺序表 的基本运算
- 第三周 顺序表的基本运算
- 第三周顺序列表的基本运算
- 第三周的顺序表的基本运算
- 第三周项目1-顺序表的基本运算
- 第三周项目(1):顺序表的基本运算
- 第三周实践项目1-顺序表的基本运算
- 第三周—项目1 顺序表的基本运算
- 第三周,顺序表的基本运算(1)
- 第三周 项目1 - 顺序表的基本运算
- 第三周 项目一:顺序表的基本运算
- 第三周项目(2):顺序表的基本运算
- 第三周--顺序表的基本运算1
- 第三周项目一顺序表的基本运算
- Linux ls命令详解
- 安卓编译的时候依赖包解析不了,老是下载不下来。Faled to resolve: com.squareup.retrofit2:converter-gson:2.3.0
- HDU-敌兵布阵
- 实际用户id(real user id)、有效用户id(effective user id)和保存的设置用户id(saved set-user-id)
- 【强连通 && 最多可以加几条边使得图不为强连通图】HDU
- 第三周 --顺序表 的基本运算
- 译-设计模式-结构模式之Adapter
- 51单片机实验(LED and KEY)
- gensim:bin转txt
- Buildings
- 截取URL参数
- 用python实现将数组元素按从小到大的顺序排列
- 机器学习相关材料和网站
- tp5 ThinkPhp5 自定义异常处理类(先留坑