线性表--顺序表
来源:互联网 发布:程序员浏览器 编辑:程序博客网 时间:2024/05/01 01:53
本文章将介绍线性表中的顺序表。
其中包含的操作有:初始化,创建,查找(按值查找和按位置查找),插入,删除(按值删除和按位置删除)
废话少说,直接上码。
/**这里讲的是线性表中顺序表*结构:一个一维数组,一个表示长度的变量*操作:初始化,创建,查找,删除*平均时间复杂度分析方法:每个元素查找的概念*需要移动的元素个数(插入元素算是移动一次)*/#include<iostream>using namespace std;#define MAXSIZE 1000typedef struct{int List[MAXSIZE+1]; //因为位置是从1开始,所以定义的大小应该加上1int ListLen;}SeqList;SeqList seqList;// 可以不用结构,可以直接用// int List[MAXSIZE+1];// int ListLen = 0;//初始化void init(){seqList.ListLen = 0;}//创建int create(int *r,int n){if(n > MAXSIZE)return -1;seqList.ListLen = n;for(int i = 0; i<=n; i++){seqList.List[i] = r[i];}return 1;}//查找int search(int obj){seqList.List[0] = obj;int i = seqList.ListLen;while(seqList.List[i] != obj)i--;return i;}int searchByPos(int pos){if(pos < 1 || pos > seqList.ListLen)return -1;return seqList.List[pos];}//插入int addNode(int pos,int Node){if(pos > seqList.ListLen+1 || pos < 1 || seqList.ListLen == MAXSIZE) //注意已经达到最大长度return -1;for(int i = seqList.ListLen; i >= pos; i--){seqList.List[i+1] = seqList.List[i]; }seqList.List[pos] = Node;seqList.ListLen ++ ;return 1;}//删除int deleteNodeByPos(int pos){if(seqList.ListLen == 0 || pos > seqList.ListLen || pos < 1) //注意顺序表本来是空的情况return -1;for(int i = pos; i< seqList.ListLen; i++)seqList.List[i] = seqList.List[i+1];seqList.ListLen --;return 1;}int deleteNodeByValue(int value){int pos = search(value);if(pos == 1){cout<<value<<"不在顺序表中。"<<endl;return -1;}return deleteNodeByPos(pos);}//输出void show(){for(int i = 1; i<seqList.ListLen; i++ ){cout<<seqList.List[i]<<" ";}cout<<seqList.List[i]<<endl;}int main(){int n,i;int a[MAXSIZE];init();cin>>n;for(i =1;i<=n;i++){cin>>a[i];}create(a,n);cout<<"初始化:"<<endl;show();int deNode;cin>>deNode;deleteNodeByValue(deNode);cout<<"删除: "<<deNode<<endl;show();int pos;cin>>pos;deleteNodeByPos(pos);cout<<"删除位置: "<<pos<<endl;show();int addN;cin>>pos>>addN;addNode(pos,addN);cout<<"在"<<pos<<"位置"<<"插入: "<<addN<<endl;show();int searchNode;cin>>searchNode;cout<<search(searchNode)<<endl;return 0;}
0 0
- 线性表-顺序表
- 线性表--- 顺序表
- 线性表顺序表
- 线性表->顺序表
- 线性表- 顺序表
- 线性表--顺序表
- 线性表---顺序表
- 线性表--顺序表
- 线性表---顺序表
- 【线性表】顺序表
- 线性表--顺序表
- 线性表(顺序表)
- 线性表---顺序表
- 线性表--顺序表
- 线性表-顺序表
- 线性表-顺序表
- 数据结构--顺序线性表
- 线性表顺序存贮
- 【Codeforces Round 276 (Div 2)C】【讨论】Bits [l,r]范围内第1个数最多数中最小的那个
- mysql基础知识(一)
- 使用Gson注意事项
- javascript中对cookie的存取查操作
- PHP错误处理
- 线性表--顺序表
- AlertDialog.Builder的使用
- 基于 Jenkins 快速搭建持续集成环境
- 计算机线程
- Volley源码解析(一):网络请求内容
- HDU 5556
- Android上的断点续传下载原理
- OCP-1Z0-051-2015-40题
- Android实现网络多线程断点下载介绍