数据结构之线性表--顺序结构测试
2009-09-09 22:27
253 查看
#include <iostream> using namespace std; /* 线性表 */ #define LIST_INIT_SIZE 5 #define LIST_INCREASE_SIZE 10 typedef struct ListSq { int *data; int length; // 长度 int listsize; // 容量 }ListSq; int createSq(ListSq &l) { // 初始化线性顺序表 l.data = (int*)malloc(LIST_INIT_SIZE * sizeof(int)); l.listsize = LIST_INIT_SIZE; l.length = 0; return 1; }//createSq void init(ListSq &l) { // 初始化内容 for(int i = 0; i < 4; ++i) { printf("%s", "输入一个数字:"); scanf("%d,", &l.data[i]); ++l.length; } }//add void print(ListSq &l) { // 打印 for(int i = 0; i < l.length; ++i) { printf("%d,", l.data[i]); } printf("长度:%d", l.length); }//print void add_p(ListSq &l, int position, int data) { // 添加一个元素 if(position < 1 || position > l.length + 1) exit(0); if(l.length >= l.listsize) l.data = (int*)realloc(l.data, (l.listsize + LIST_INCREASE_SIZE) * sizeof(int)); for(int i = l.length; i > position - 1; --i) { l.data[i] = l.data[i - 1]; } l.data[position - 1] = data; ++l.length; } void delete_p(ListSq &l, int position, int &data) { // 删除元素 if(position < 1 || position > l.length) exit(0); data = l.data[position - 1]; for(int i = position - 1; i < l.length; ++i) { l.data[i] = l.data[i + 1]; } --l.length; } void main() { ListSq l1; createSq(l1); init(l1); print(l1); printf("/n"); add_p(l1, 2, 9); print(l1); printf("/n"); add_p(l1, 2, 8); print(l1); printf("/n"); add_p(l1, 2, 7); print(l1); printf("/n"); int t; delete_p(l1, 2, t); print(l1); printf("/n"); printf("删除的元素之是%d", t); }
相关文章推荐
- 数据结构(线性结构习题)Problem C: 下车的顺序
- 数据结构之线性结构---栈 顺序储存
- 数据结构 | 如何实现线性表的顺序结构
- [SDUT](1130)数据结构上机测试1:顺序表的应用 ---顺序存储(线性表)
- 数据结构 | 如何实现线性表的顺序结构
- 数据结构之线性结构(顺序表和链表的比较)【五】
- 数据结构 学习笔记(二):线性结构:线性表(顺序表,链表,广义表,多重链表)
- 数据结构之线性表之顺序表和链表(通过数据结构角度深入理解arrayList和linkedList的特性)
- 【ShancoLove】带你看数据结构——第二课:线性表顺序结构
- 数据结构 线性表的顺序结构
- 数据结构之线性结构---队列 顺序储存
- 数据结构中线性表的顺序储存结构
- 进击的数据结构一之线性表的顺序结构
- 数据结构-线性表的顺序结构
- 【算法和数据结构】_17_小算法_线性结构:顺序表
- 数据结构-线性表的顺序存储实现及各种操作代码
- Java数据结构-线性表之顺序表ArrayList
- java实现数据结构中线性表的顺序存储
- 实验报告1—线性表的顺序结构