#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include<cstdlib> using namespace std; #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define MAXSIZE 20 typedef int ElemType; //定义一个数组链表 typedef struct { ElemType data[MAXSIZE];//链表大小 int length; }SqList; //链表名 //取数据 ElemType GetElem(SqList L, int i, ElemType *e) { if (L.length==0||i<1||i>L.length) //排除非链表内数据 { return ERROR; } *e = L.data[i-1]; return OK; } //链表内插入元素 ElemType InsertElem(SqList *L, int i, ElemType e) { int k; if (L->length ==MAXSIZE)//防止爆表 { return ERROR; } if (i<1||i>L->length+1)//防止越界 { return ERROR; } if (i<=L->length) { for (k = L->length - 1; k>=i-1;k--) { L->data[k + 1] = L->data[k]; } } L->data[i - 1] = e; L->length++;//链表长度加一 return OK; } //链表内删除元素 ElemType DeleteElem(SqList * L, int i, ElemType *e) { int k; //判链表是否为空 if (L->length==0) { return ERROR; } //判断是否越界 if (i<1||i>L->length) { return ERROR; } *e = L->data[i - 1]; //返回第i个元素的值 if (i<L->length) { for (k=i ; k< L->length; k--) { L->data[k - 1] = L->data[k]; } L->length--; //链表长度减一 return OK; } } //链表添加元素 ElemType AddElem(SqList *L, ElemType e) { if (L->length>=MAXSIZE) { return ERROR; } else { L->data[L->length++] = e; return OK; } } int main() { SqList list; list.length = 0; for (int i = 0; i < 10; ++i) { AddElem(&list,rand()); } InsertElem(&list, 5, 520); for (int i = 0; i < list.length; ++i) { cout << list.data[i] << ' '; } cout << endl; }
很简单的数据结构:链表线性存储的创建、取数据、数据添加、数据插入、数据删除
最新推荐文章于 2022-12-23 12:29:02 发布