文章图片
#include
#include
#include
#define MAXSIZE 10
using namespace std;
//typedef struct SqList *L;
typedef struct{
char data[MAXSIZE];
int length;
}SqList;
void InitList(SqList *&L){
L=(SqList *)malloc(sizeof(SqList));
L->length=0;
}
bool InsertList(SqList *&L,int i,char e){
int j;
if(i<1||i>L->length+1)
return false;
i--;
for(j=L->length;
j>i;
j--)
L->data[j]=L->data[j-1];
L->data[i]=e;
L->length++;
return true;
}
bool DeleteList(SqList *&L,int i,char e){
int j;
if(i<1||i>L->length)
return false;
i--;
e=L->data[i];
for(j=i;
j
L->data[j]=L->data[j+1];
L->length--;
return true;
}
int DispList(SqList * L){
int i;
for(i=0;
i
printf("%c ",L->data[i]);
printf("\n");
}
int LengthList(SqList * L){
return (L->length);
}
bool ListEmpty(SqList * L){
return (L->length==0);
}
void DestroyList(SqList *& L){
free(L);
}
int main(){
SqList *L;
char e;
int i;
InitList(L);
InsertList(L,1,'a');
InsertList(L,2,'b');
InsertList(L,3,'c');
InsertList(L,4,'d');
InsertList(L,5,'e');
DispList(L);
printf("%d",LengthList(L));
printf("\n");
if(ListEmpty(L)=='true')
printf("yes");
else
printf("no");
printf("\n");
printf("%c",L->data[2]);
printf("\n");
for(i=0;
i
if(L->data[i]=='a')
printf("%d",i+1);
printf("\n");
InsertList(L,4,'f');
DispList(L);
DeleteList(L,3,e);
DispList(L);
DestroyList(L);
return 0;
}
总结:
1.线性表顺序存储类型可以描述如下:
typedef struct
{
ElemType data[MaxSize];
int length;
}SqList;
假设ElemType 是int 类,使用如下自定义类型语句:‘
typedef int ElemType;
2。线性表的九种基本运算:
void InitList(SqList *&L)
void DestroyList(SqList *&L)
bool ListEmpty(SqList *L)
int ListLength(SqList *L)
void DispList(SqList *L)
【数据结构|数据结构实验一((1)(顺序表)线性表的各种操作SqList)】bool GetElem(SqList *L,int i,ElemType &e)
int LocateElem(SqList*L,ElemType e)
bool ListInsert(SqLsit *L,int i,ElemType e)
bool ListDelete(SqList *&L,int i,ElemType &e)
总共返回得到的元素和删除元素需要返回元素e的地址
3.注意
void initlist(sqlist *&L);
意思是说,参数L是sqlist类型,且参数是以别名传参出现的。所谓别名的意思说就是,在这个函数中,函数可以修改L的修,且只能在c++中使用。
推荐阅读
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历
- C语言学习(bit)|16.C语言进阶——深度剖析数据在内存中的存储
- 数据结构和算法|LeetCode 的正确使用方式
- 先序遍历 中序遍历 后序遍历 层序遍历
- 数据结构|C++技巧(用class类实现链表)
- 数据结构|贪吃蛇代码--c语言版 visual c++6.0打开
- 算法|算法-二分查找
- 数据结构学习指导|数据结构初阶(线性表)
- leetcode题解|leetcode#106. 从中序与后序遍历序列构造二叉树
- java|ObjectOrientedProgramming - 面向对象的编程(多态、抽象类、接口)- Java - 细节狂魔