线性表顺序存储--C实现
来源:互联网 发布:淘宝网秒杀系统异常 编辑:程序博客网 时间:2024/05/22 02:08
参照数据结构线性表的抽象类型定义,实现了线性表的顺序存储
代码如下
#include <stdio.h>#include <stdlib.h>#include <string.h>#define OK 1#define ERROR -1#define TRUE 1#define FALSE 0#define LIST_INIT_SIZE 10#define LIST_INCR_SIZE 10typedef int ElemType;typedef struct {ElemType *elem; int length; int listsize;}SqList;int InitList(SqList *L) {L->elem = (ElemType*)malloc(LIST_INIT_SIZE * sizeof(ElemType)); if (L->elem == NULL) {return ERROR;} memset(L->elem, 0, LIST_INIT_SIZE * sizeof(ElemType)); L->length = 0; L->listsize = LIST_INIT_SIZE; return OK;}int DestoryList(SqList *L) {if (L->elem != NULL) {free(L->elem); L->elem = NULL; L->length = 0; L->listsize = 0; return OK;} return ERROR;}int ClearList(SqList *L) {if (L->elem) {memset(L->elem, 0, L->listsize * sizeof(ElemType)); return OK;} return ERROR;}int ListEmpty(SqList L) {return L.length == 0;}int ListLength(SqList L) {return L.length;}int GetElem(SqList L, int i, ElemType *e) {if (i < 0 || i > ListLength(L)) {return ERROR;} *e = L.elem[i]; return OK;}int LocateElem(SqList L, ElemType e) { int i; for (i = 0; i < L.length; i++) {if (e == L.elem[i]) {return i;}}return ERROR;}int ListInsert(SqList *L, int i, ElemType e) { ElemType *p; ElemType *q = &L->elem[i-1]; if (i < 0 || i > L->length +1) {return ERROR;} for (p = &L->elem[L->length]; p >= q; p--) {*(p+1) = *p;} *q = e; L->length++; return OK;}int ListDelete(SqList *L, int i, ElemType *e) { ElemType *p, *q = &L->elem[L->length-1];if (i < 0 || i > L->length) {return ERROR;} *e = L->elem[i-1]; for (p = &L->elem[i-1]; p <= q; p++) {*p = *(p+1);} L->length--; return OK;}void ListTraverse(SqList L) { int i; for (i = 0; i < L.length; i++) { printf("%d ", L.elem[i]);}}int main(void){ ElemType e; SqList L; InitList(&L); ListInsert(&L,1, 1); ListInsert(&L,2, 2); ListInsert(&L,3, 3); ListInsert(&L,4, 4); ListInsert(&L,5, 5); ListTraverse(L); printf("\n"); ListDelete(&L, 2, &e); printf("%d\n", e); ListTraverse(L); printf("\n"); printf("%d", LocateElem(L, 3));return 0;}
0 0
- 线性表顺序存储--C实现
- 线性表---顺序存储实现
- 线性表顺序存储实现
- 顺序存储结构线性表的C语言实现
- 线性表之顺序存储结构--C实现
- 线性表之顺序存储结构--C实现
- 线性表之顺序存储结构--C实现
- 线性表之顺序存储结构--C实现
- 用C语言实现线性表的顺序存储结构
- C语言实现线性表之顺序存储结构操作
- 线性表顺序存储结构的c语言实现
- 线性表的顺序存储结构的c语言实现
- 线性表之顺序存储结构--C实现
- C语言实现一般线性表的顺序存储
- 线性表顺序存储-使用c语言实现
- 线性表(顺序存储)C语言实现
- 线性表之顺序存储结构--C实现
- C语言--线性表的顺序存储的实现
- 嵌入式 获取文件真正的大小示例,经典短小精悍,以及文件上锁
- cortex-A8汇编指令练习一
- c++类的构造函数详解
- 基于C#弹幕类射击游戏的实现——(七)弹幕类实现
- 山东理工大学ACM平台题答案关于C语言 1242 偶数求和
- 线性表顺序存储--C实现
- ios遍历NSDictionary的方法
- LRU Cache实现
- Android APK加壳技术方案【1】
- RTP协议分析
- 技术网站
- NYOJ 198 数数
- Windows下部署基于Apache的SVN服务器
- 拓扑排序的应用