首页 > 代码库 > 自学数据结构——顺序线性表2
自学数据结构——顺序线性表2
1 /* 2 ============================================================================ 3 Name : sqlist.c 4 Author : codecup 5 Version : 6 Copyright : Your copyright notice 7 Description : Hello World in C, Ansi-style 8 ============================================================================ 9 */ 10 11 #include <stdio.h> 12 #include <stdlib.h> 13 14 #define MAXSIZE 20 15 #define OK 1 16 #define ERROR 0 17 #define TRUE 1 18 #define FALSE 0 19 20 typedef int Status; 21 22 typedef int ElementType; 23 typedef struct { 24 ElementType data[MAXSIZE]; //定义数组用于存储数据 25 int length; //线性表当前的长度 26 } SqList; 27 28 //初始化线性表 29 void initSqList(SqList *L) { 30 L->length = 0; 31 } 32 33 //获取线性表中的元素 34 Status getElem(SqList L, int i, ElementType *e) { 35 if (L.length == 0 || i < 1 || i > L.length) { 36 return ERROR; 37 } 38 *e = L.data[i - 1]; 39 return OK; 40 } 41 42 //插入元素 43 Status insert(SqList *L, int i, ElementType e) { 44 int j; 45 if (L->length == MAXSIZE) { 46 return ERROR; 47 } 48 if (i < 1 || i > L->length + 1) { 49 return ERROR; 50 } 51 if (i < L->length) { 52 for (j = L->length - 1; j > i; j--) { 53 L->data[j + 1] = L->data[j]; 54 } 55 } 56 L->data[i - 1] = e; 57 L->length++; 58 return OK; 59 } 60 61 //删除元素 62 Status delete(SqList *L, int i, ElementType *e) { 63 int k; 64 if (L->length == 0) { 65 return ERROR; 66 } 67 if (i < 1 || i > L->length) { 68 return ERROR; 69 } 70 *e = L->data[i - 1]; 71 if (i < L->length) { 72 for (k = i; k < L->length; ++k) { 73 L->data[k - 1] = L->data[k]; 74 } 75 } 76 L->length--; 77 return OK; 78 } 79 80 int main(void) { 81 SqList L; 82 ElementType e; 83 initSqList(&L); 84 insert(&L, 1, 187); 85 getElem(L, 1, &e); 86 printf("%d", e); 87 return EXIT_SUCCESS; 88 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。