数据结构-顺序表的基本操作
2017-11-01 14:59
477 查看
实验内容:
顺序表的基本操作
编写一个程序sqlist.cpp,实现以下顺序表的基本操作(假设顺序表的最大长度为50,元素类型ElemType为char)
(1)初始化顺序表L (2)依次插入a,b,c,d,e五个元素 (3)输出顺序表L (4) 输出顺序表L的长度 (5)判断顺序表L是否为空 (6) 输出顺序表L的第3个元素 (7)输出元素a的位置 (8)在第4个元素位置上插入元素f (9)输出顺序表L (10)删除L的第3个元素 (11)输出顺序表L (12)释放顺序表L
顺序表的基本操作
编写一个程序sqlist.cpp,实现以下顺序表的基本操作(假设顺序表的最大长度为50,元素类型ElemType为char)
(1)初始化顺序表L (2)依次插入a,b,c,d,e五个元素 (3)输出顺序表L (4) 输出顺序表L的长度 (5)判断顺序表L是否为空 (6) 输出顺序表L的第3个元素 (7)输出元素a的位置 (8)在第4个元素位置上插入元素f (9)输出顺序表L (10)删除L的第3个元素 (11)输出顺序表L (12)释放顺序表L
#include<iostream> #include<stdio.h> using namespace std; #define max 50 typedef struct { char data[max]; int length; }sqlist; void init(sqlist*&l)//初始化线性表 { l=(sqlist*)malloc(sizeof(sqlist)); l->length=0; } bool empty(sqlist*&l)//判断线性表是否为空 { return (l->length==0); } void length(sqlist*&l)//判断线性表长度 { int i=l->length; cout<<"线性表长度为:"<<i<<endl; } void create(sqlist*&l,char a[],int n)//创建线性表 { int i=0,k=0; l=(sqlist*)malloc(sizeof(sqlist)); while(i<n) { l->data[i]=a[i]; k++; i++; } l->length=k; } void display(sqlist*l)//输出线性表 { for(int i=0;i<l->length;i++) cout<<l->data[i]<<" "; } void getelem(sqlist*&l,int n)//查找对应编号的元素 { if(n<1||n>l->length) cout<<"错误的位置!"<<endl; char e=l->data[n-1]; cout<<e<<endl; } void deleteElem(sqlist*&l,int n)//删除对应编号的元素 { int i; if(n<1||n>l->length) cout<<"错误的位置!"; n--; char e=l->data ; for(i=n;i<l->length;i++) { l->data[i]=l->data[i+1]; } l->length--; } void destroy(sqlist*&l)//释放线性表 { free(l); } void find(sqlist*&l,char e)//按元素查找编号 { int i=0; while(i<=l->length&&l->data[i]!=e) i++; if(i>l->length) cout<<"该元素不存在!"; else cout<<i+1<<endl; } void insert(sqlist*&l,int i,char e)//在对应编号插入元素 { int j; if(i<1||i>l->length) cout<<"错误的输入!"<<endl; i--; for(j=l->length;j>i;j--) l->data[j]=l->data[j-1]; l->data[i]=e; l->length++; cout<<"*******插入元素成功!*******"<<endl; } void insertTwo(sqlist*&l,int i)//在编号处插入多个元素 { char e='e'; if(i<1||i-1>l->length) cout<<"该位置无法插入!"<<endl; i--; while(e>='a'&& e<='e') { for(int j=l->length;j>i;j--) l->data[j]=l->data[j-1]; l->data[i]=e; e--; l->length++; } } int main() { sqlist*l; /*cout <<"输入任意字符:"; char a[max]; int n=0; char ch; while(ch=getchar()!='\n')//字符的录入 { for(int i=0;i<n;i++) { cin>>a[i]; n++; } } int k=n;//计数 */ char a[]={'q','t','u','w','x','i','p','s','m'}; int k=9; init(l); create(l,a,k); cout<<"线性表元素为:"; display(l); cout<<endl; //在对应的编号插入元素 int x; cout<<"输入想要插入元素的位置:"; cin>>x; insertTwo(l,x); cout<<"插入后的结果为:"; display(l); cout<<endl; length(l);//显示长度 if(empty)//判断是否为空 cout<<"非空!"<<endl; else cout<<"空!"<<endl; cout<<"第三个元素为:";//查找第三个元素 getelem(l,3); display(l); cout<<endl; cout<<"a的位置编号为:";//查找'a'的编号 find(l,'a'); cout<<endl; cout<<"在第四个位置上插入'f'"<<endl;//在第四个位置插入'f' insert(l,4,'f'); cout<<"顺序为:"; display(l); cout<<endl<<endl; cout<<"删除第三个元素后:";//删除第三个元素 deleteElem(l,3); display(l); cout<<endl; destroy(l); return 0; }
相关文章推荐
- 数据结构-循环顺序队列的基本操作
- SqListFunc顺序链表的12个基本操作的C语言代码(数据结构)
- C语言版数据结构中顺序表的基本操作定义和初始化
- 数据结构 顺序栈基本操作
- 数据结构 - 顺序栈的基本操作(C语言)
- 数据结构_顺序表的基本操作(c)
- 数据结构 顺序表的基本操作 (C++ 版本)
- 数据结构-顺序表的基本操作
- 数据结构 顺序栈的基本操作
- 数据结构 - C语言版 - 顺序栈 所有基本操作
- 数据结构系列-线性表的顺序存储及基本操作
- 数据结构--顺序栈的基本操作
- 数据结构的串的顺序存储的基本操作(学习历程)
- 数据结构 - 顺序表的基本操作(C语言)
- 进击的数据结构之六队列的基本操作-顺序结构
- 【C++/数据结构】顺序表的基本操作
- 数据结构-顺序串的基本操作
- 数据结构-顺序表的基本操作
- 数据结构---C语言顺序栈基本操作
- 数据结构 串(顺序存储)的基本操作