线性表的顺序存储结构C语言版
2016-06-22 19:04
459 查看
#include <stdio.h> #define MAXSIZE 101 #define N 10 typedef struct SeqList { int data[MAXSIZE]; int length; }SeqList; void initList(SeqList *L); int Listinsert(SeqList *L, int index, int e); int Listdelete(SeqList *L, int index, int *e); void printList(SeqList L); int main(void) { SeqList L; int e; initList(&L); for (int i = 1; i <N; ++i) { Listinsert(&L,i,i); } printList(L); printf("\n======\n"); for(int i=L.length;i>=1;--i) { Listdelete(&L,i,&e); printf("%d\t", e); } putchar(10); return 0; } void initList(SeqList *L) { L->length = 0; } int Listinsert(SeqList *L, int index, int e) { if(L->length== MAXSIZE) return -1; if(index<=L->length+1 && index>=1) { if(index==L->length+1) { L->data[L->length+1] = e; L->length += 1; } else { for (int i = L->length; i >= index ; --i) { L->data[i+1] = L->data[i]; } L->data[index] = e; L->length += 1; } return 0; } return -1; } int Listdelete(SeqList *L, int index, int *e) { if(index>L->length) return -1; *e = L->data[index]; for(int i=index;i<=L->length;i++) { L->data[i] = L->data[i+1]; } L->length -= 1; return 0; } void printList(SeqList L) { for (int i = 1; i <= L.length; ++i) { printf("%d\t", L.data[i]); } }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Tomcat端口被占用解决方法(不用重启)
- “传奇”图象数据存储方式
- C#数据结构之顺序表(SeqList)实例详解
- Lua和C语言的交互详解
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- SQL Server误区30日谈 第18天 有关FileStream的存储,垃圾回收以及其它
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- linux----->shell高级编程----1