c语言实现--顺序表操作
2013-11-15 15:08
363 查看
经过三天的时间终于把顺序表的操作实现搞定了。(主要是在测试部分停留了太长时间)
1;线性表顺序存储的概念:指的是在内存中用一段地址连续的存储单元依次存储线性表中的元素。
2;采用的实现方式:一段地址连续的存储单元可以用固定数组或者动态存储结构来实现,这里采用动态分配存储结构。
3;顺序表的定义及操作集合:头文件为defs.h
4;顺序表结构体示意图
TravelList
17;makefile的实现
18;顺序表的优缺点:顺序表由于其存储结构的特点,特别适合查找(其时间复杂度为O(1)),不适合频繁插入和删除(每一次插入和删除的时间复杂度都是O(n))
1;线性表顺序存储的概念:指的是在内存中用一段地址连续的存储单元依次存储线性表中的元素。
2;采用的实现方式:一段地址连续的存储单元可以用固定数组或者动态存储结构来实现,这里采用动态分配存储结构。
3;顺序表的定义及操作集合:头文件为defs.h
#ifndef _DEFS_H #define _DEFS_H #include<stdio.h> #include<stdlib.h> #include<malloc.h> #define LIST_INIT_MAX 10 //长表为10 #define LIST_INCREMENT 2 //短表为2 typedef struct { int * elem; //采用动态存储分配结构 int length; int listsize; }sqlist; //线性表操作集合 void InitList(sqlist *L); //初始化,动态分配一块存储空间 void DestroyList(sqlist *L); //释放这一段存储空间(撤销对应于动态) void ClearList(sqlist *L); void ListEmpty(sqlist L); int ListLength(sqlist L); int GetElem(sqlist L, int i, int *e); void LocateList(sqlist L, int e); //在表中查找值为e的元素 int PriorElem(sqlist L, int cur_e, int *pri_e); //求当前元素的前驱 int NextElem(sqlist L, int cur_e, int *Nex_e); //求当前元素的后继 int ListInsert(sqlist &L, int i, int e); //插入操作 int ListDelete(sqlist &L, int i, int *e); //删除操作 void TravelList(sqlist L); //便历操作 #endif
4;顺序表结构体示意图
TravelList.c #include "defs.h" void TravelList(sqlist L) { int i int *p = L.elem; for (i=0; i<L.length; i++,p++) { printf("第%d个元素为:%d\n", i+1, *p); } }
TravelList
17;makefile的实现
object = main.o InitList.o DestroyList.o ClearList.o ListEmpty.o \ ListLength.o GetElem.o LocateElem.o PriorElem.o NextElem.o \ ListInsert.o ListDelete.o TravelList.o test : $(object) gcc -g -Wall -o test $(object) main.o : defs.h InitList.o : defs.h DestroyList.o : defs.h ClearList.o : defs.h ListEmpty.o : defs.h ListLength.o : defs.h GetElem.o : defs.h LocateElem.o : defs.h PriorElem.o : defs.h NextElem.o : defs.h ListInsert.o : defs.h ListDelete.o : defs.h TravelList.o : defs.h .PHONY : clean clean : rm *.o -f
18;顺序表的优缺点:顺序表由于其存储结构的特点,特别适合查找(其时间复杂度为O(1)),不适合频繁插入和删除(每一次插入和删除的时间复杂度都是O(n))
相关文章推荐
- 静态与动态顺序表操作的C语言实现
- C语言实现顺序表基本操作汇总
- 【数据结构】C语言实现栈的进栈,出栈,遍历,清空等操作
- C语言实现字符串的操作
- C语言实现顺序表的基本操作
- 链表的实现与操作(C语言实现)
- Avl树的基本操作(c语言实现)
- C语言实现无头链表的基本操作
- 数据结构--单链表的基本操作(C语言实现)
- 单向链表的C语言实现与基本操作
- C语言实现顺序栈的基本操作
- 【C语言】keybd_event 函数,实现模拟按键操作
- 单链表操作大全C语言实现
- C语言实现静态顺序表
- c语言:顺序表的实现(一) 创建,插入,删除,查找,输出等基本操作实现
- C语言实现二叉排序树的增删查操作
- 【顺序表】用c语言简单实现顺序表
- 对链表各种操作的实现(C语言)
- C语言字符串的常见特殊操作(除了string.c实现的那些接口)
- C语言实现单链表(带头结点)的基本操作