考研系列一-线性表类(顺序存储)
2015-10-29 18:56
375 查看
一个线性表的类:
#include <fstream> #include <iostream> #include <cstring> #include <cstdlib> using namespace std; #define N 100 enum Status{success,fail,fatal,range_error,overflow}; class List{ private: char *list; int len; public: List(char *tlist=""){ list=new char ; strcpy(list,tlist);//初始化 len=strlen(list); } ~List(){ delete list; } void listClear(){//销毁 list[0]='\0'; len=0; } bool listEmpty(){//判空 return len==0; } int listSize(){//求长度 return len; } Status listRetrieve(int pos,char &elem){//取指定位置元素 if(pos>=0&&pos<len){ elem=list[pos]; return success; }else return range_error; } Status listLocate(char elem,int &pos);//按值查找 Status listInsert(int pos,char elem);//插入 Status listRemove(int pos);//删除 Status listPrior(int pos,char &elem);//求前驱 Status listNext(int pos,char &elem);//求后继 }; int main(){ //freopen("D:\\input.in","r",stdin); //freopen("D:\\output.out","w",stdout); return 0; } Status List::listLocate(char elem,int &pos){ for(int i=0;i<len;i++){ if(list[i]==elem){ pos=i; return success; } } return fail; } Status List::listInsert(int pos,char elem){ if(len==N) return overflow; if(pos<0||pos>len) return range_error; for(int i=len;i>pos;i--) list[i]=list[i-1]; list[pos]=elem; len++; return success; } Status List::listRemove(int pos){ if(pos<0||pos>=len) return range_error; for(int i=pos;i<len-1;i++) list[i]=list[i+1]; len--; return success; } Status List::listPrior(int pos,char &elem){ return listRetrieve(pos-1,elem); } Status List::listNext(int pos,char &elem){ return listRetrieve(pos+1,elem); }
相关文章推荐
- 2015年9大优秀项目管理工具集锦
- 你的理想在哪
- 数据结构之后缀数组
- 2015年9大优秀项目管理工具集锦
- js移动div改进(兼容)
- php设计模式笔记--总结篇
- 在Eclipse中使用maven创建项目
- 黑马程序员-常用Java API介绍
- String ->date: 思想:把日期装换成字符串
- C++学习笔记
- Android开发中调用Spring CXF整合发布的WebService接口为什么抛出异常错误?
- Android开发中调用Spring CXF整合发布的WebService接口为什么抛出异常错误?
- Android开发中调用Spring CXF整合发布的WebService接口为什么抛出异常错误?
- Android开发中调用Spring CXF整合发布的WebService接口为什么抛出异常错误?
- Android开发中调用Spring CXF整合发布的WebService接口为什么抛出异常错误?
- 数据结构之伸展树
- 关于mysql的错误 - no query specified
- MEGAMALL OpenCart 自适应主题模板 ABC-0692
- MEGAMALL OpenCart 自适应主题模板 ABC-0692
- JDBC连接Oracle数据库,查看表结构,调用存储过程