dedecms 网站日志手机做网页的软件
线性表的顺序表示简称顺序表 ,逻辑上相邻的两个元素在物理位置上也相邻
业界函数命名规范:下划线命名法list_insert和驼峰命名法ListInsert
#include<iostream>
#define Maxsize 50
using namespace std;
typedef int elemtype;//让顺序表存储其他类型元素时,可以快速完成代码修改
typedef struct {elemtype data[Maxsize];int length ; // 当前顺序表有多少个元素
}Sqlist; bool ListInsert(Sqlist &L,int pos,elemtype element)//为什么加引用因为L会改变
{//判断插入位置是否合法 if(pos<1||pos>L.length+1){return false;}//如果存储空间满了,不能插入if(L.length==Maxsize){return false;} int j;//把后面的元素依次往后移动,空出位置,来放入要插入的元素 for(j=L.length;j>=pos;j--){L.data[j]=L.data[j-1];}L.data[pos-1]=element;L.length++;return true;}
void PrintList(Sqlist L)//不需要改变顺序表因此不需要加引用
{for(int i=0;i<L.length;i++){cout<<L.data[i]<<" ";}cout<<endl;
}
int main(){Sqlist L;bool ret; //ret用来装函数的返回值 L.data[0]=1;L.data[1]=2;L.data[2]=3;L.data[3]=4;L.length=4;ret=ListInsert(L,9,89);if(ret==true){PrintList(L);} else{cout<<"插入失败"<<endl; }return 0;
}
线性表插入删除查找完整代码
#include<iostream>
#define Maxsize 50
using namespace std;
typedef int elemtype;//让顺序表存储其他类型元素时,可以快速完成代码修改
typedef struct {elemtype data[Maxsize];int length ; // 当前顺序表有多少个元素
}Sqlist; bool DeleteList(Sqlist &L,int pos,elemtype &del)
{//判断删除位置是否合法if(pos<1||pos>L.length+1){return false;} del=L.data[pos-1];int j;for(j=pos;j<L.length;j++){L.data[j-1]=L.data[j];}L.length--;return true;//第二种写法
// for(j=pos-1;j<length-1;j++)
// {
// L.data[j]=L.data[j+1];
//
// }
//L.length--;
//return true;
}
bool ListInsert(Sqlist &L,int pos,elemtype element)//为什么加引用因为L会改变
{//判断插入位置是否合法 if(pos<1||pos>L.length+1){return false;}//如果存储空间满了,不能插入if(L.length==Maxsize){return false;} int j;//把后面的元素依次往后移动,空出位置,来放入要插入的元素 for(j=L.length;j>=pos;j--){L.data[j]=L.data[j-1];}L.data[pos-1]=element;L.length++;return true;}
//查找某个元素的位置,找到了返回1 没找到返回0
int locateElem(Sqlist L,elemtype data){int i;for(int i=0;i<L.length-1;i++){if(L.data[i]==data){return i+1;}}return 0;//循环结束没找到 }
void PrintList(Sqlist L)//不需要改变顺序表因此不需要加引用
{for(int i=0;i<L.length;i++){cout<<L.data[i]<<" ";}cout<<endl;
}
int main(){Sqlist L;bool ret; //ret用来装函数的返回值 L.data[0]=1;L.data[1]=2;L.data[2]=3;L.data[3]=4;L.length=4;elemtype del;//ret=ListInsert(L,9,89);//ret=DeleteList(L,2,del); int pos=locateElem(L,8);cout<<pos<<endl;
// if(ret==true)
// {
// PrintList(L);
// }
// else
// {
// cout<<"插入失败"<<endl;
// }
// cout<<"删除的元素是"<<del<<endl;return 0;
}