顺序表
来源:互联网 发布:网络系统解决方案 编辑:程序博客网 时间:2024/05/21 10:55
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "SequenceList.h"int InitList(SqList *L){ L->data = (ElemType *)malloc(sizeof(ElemType) * MAXSIZE); if (L->data == NULL) { return FAILURE; } L->size = MAXSIZE; L->length = 0; return SUCCESS;}int ListEmpty(SqList *L){ return (L->length == 0) ? TRUE : FALSE;}int ListInsert(SqList *L, int i, ElemType e){ ElemType *tmp = L->data; ElemType *p; if (L->length >= L->size) { return FAILURE; } if (i <= 0 && i > L->length) { return FAILURE; } for (p = L->data + L->length - 1; p >= L->data + i - 1; p--) { memcpy(p + 1, p, sizeof(ElemType)); } memcpy(L->data + i - 1, &e, sizeof(ElemType)); L->length++; return SUCCESS;}int ListTraverse(SqList *L, void (*visit)(ElemType *)){ int i; for (i = 0; i < L->length; i++) { visit(L->data + i); } return SUCCESS;}
#include <stdio.h>#include "SequenceList.h"void print(ElemType *e){ printf("%d\n", *e);}int main(){ int ret, i; SqList list; ret = InitList(&list); if (FAILURE == ret) { printf("INIT FAILURE!\n"); } else { printf("INIT SUCCESS!\n"); } ret = ListEmpty(&list); if (TRUE == ret) { printf("List is empty!\n"); } else { printf("List is not empty"); } for (i = 1; i <= 5; i++) { ret = ListInsert(&list, i, i); if (FAILURE == ret) { printf("INSERT %d FAILURE!\n", i); } else { printf("INSERT %d SUCCESS!\n", i); } } ret = ListTraverse(&list, print); if (FAILURE == ret) { printf("TRAVERSE FAILURE!\n"); } else { printf("TRAVERSS SUCCESS!\n"); } return 0;}
下面是他的库文件:
#ifndef _SEQUENCE_H_#define _SEQUENCE_H_#define MAXSIZE 10#define FAILURE -1#define SUCCESS 0#define TRUE 0#define FALSE -1typedef int ElemType;struct SequenceList { ElemType *data; int size; int length;};typedef struct SequenceList SqList;extern int InitList(SqList *L);extern int ListEmpty(SqList *L);extern int ListInsert(SqList *L, int i, ElemType e);extern int ListTraverse(SqList *L, void (*visit)(ElemType *));#endif
阅读全文
0 0
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 顺序表
- 界面切换技术
- PAT1065 单身狗(25)
- 教程学习 02-Scheduling Tasks 学习笔记
- 约瑟夫问题
- Spring的IOC原理[通俗解释一下]
- 顺序表
- 题解——Leetcode 5. Longest Palindromic Substring 难度:Medium
- ARM移植rz和sz命令
- VPN服务器的配置
- 算法竞赛入门经典(第2版)习题3-9 子序列(All in All) Uva10340
- SpringMVC学习(三)——SpringMVC的配置文件
- Python 正则... 有些乱
- androd的自定义Adapter中的NullPointerException
- html定义列表嵌套