实现一个顺序表
来源:互联网 发布:js href click 编辑:程序博客网 时间:2024/06/07 13:17
头文件:ag.h
#ifndef __ag_H__ #define __ag_H__ #include<stdio.h> #pragma warning(disable:4996)#define MAX_SIZE 10typedef int DataType;typedef struct SeqList{ DataType _arr[MAX_SIZE]; int _size;}SeqList;void InitSeqList(SeqList *ps);void Print(SeqList *ps);void SeqListPopBack(SeqList *ps);void SeqListPushBack(SeqList *ps, DataType data);void PushFront(SeqList *ps, DataType data);void SeqListPopFront(SeqList *ps);void SeqListInsert(SeqList *ps, int pos, DataType data);void SeqListErase(SeqList *ps, int pos);void InitSeqList(SeqList *ps) //初始化{ memset(ps->_arr, 0, sizeof(ps->_size)); ps->_size = 0;}void Print(SeqList *ps) //打印{ assert(ps); int i = 0; for (i = 0; i < ps->_size; i++) { printf("%d ", ps->_arr[i]); } printf("over\n");}void SeqListPopBack(SeqList *ps) //尾删{ assert(ps); ps->_size--;}void SeqListPushBack(SeqList *ps, DataType data) //尾加{ if (ps->_size == MAX_SIZE) { printf("重新输入\n"); return; } else { ps->_size++; ps->_arr[ps->_size - 1] = data; }}void PushFront(SeqList *ps, DataType data)//头插 { if (ps->_size == MAX_SIZE) { printf("顺序表已满\n"); return; } else { int i = ps->_size; for (; i > 0; i--) { ps->_arr[i] = ps->_arr[i - 1]; } ps->_arr[0] = data; ps->_size++; }}void SeqListPopFront(SeqList *ps) //头删{ assert(ps); int i = 0; for (i = 0; i < ps->_size; i++) { ps->_arr[i] = ps->_arr[i + 1]; } ps->_size--;}void SeqListInsert(SeqList *ps, int pos, DataType data) //在顺序表的pos位置插入元素data { int i = 0; ps->_size++; for (i = 1; i < ps->_size - pos; i++) { ps->_arr[pos + i + 1] = ps->_arr[pos + i]; } ps->_arr[pos] = data;}void SeqListErase(SeqList *ps, int pos) // 删除顺序表pos位置上的元素 { assert(ps); int i = 0; for (i = 0; i < ps->_size - pos; i++) { ps->_arr[pos + i] = ps->_arr[pos + i + 1]; } ps->_size--;}#endif __ag_H__
测试文件
#include<stdio.h>#include<windows.h>#include<assert.h>#include"ag.h"void test1() //初始化 { SeqList ps; InitSeqList(&ps);}void test2() //打印 { SeqList ps; Print(&ps);}void test3() //尾加{ SeqList ps; SeqListPushBack(&ps, 5); SeqListPushBack(&ps, 4);}void test4() //尾删{ SeqList ps; SeqListPopBack(&ps);}void test5() //头加{ SeqList ps; InitSeqList(&ps); PushFront(&ps, 2); //PushFront(&ps, 2); Print(&ps);}void test6() //头删{ SeqList ps; SeqListPopFront(&ps); Print(&ps);}void test7() //在顺序表的pos位置插入元素data { SeqList ps; InitSeqList(&ps); PushFront(&ps, 2); PushFront(&ps, 2); PushFront(&ps, 2); PushFront(&ps, 2); PushFront(&ps, 2); PushFront(&ps, 2); PushFront(&ps, 2); PushFront(&ps, 2); SeqListInsert(&ps ,5, 4); Print(&ps);}void test8() // 删除顺序表pos位置上的元素 { SeqList ps; InitSeqList(&ps); PushFront(&ps, 2); PushFront(&ps, 2); PushFront(&ps, 4); PushFront(&ps, 2); PushFront(&ps, 2); SeqListErase(&ps, 2); Print(&ps);}int main(){ test8(); system("pause");}
阅读全文
0 0
- 实现一个顺序表
- 使用顺序表实现一个循环队列
- 编写一个程序,实现顺序表的各种基本运算
- C语言实现一个动态内存的顺序表
- C语言实现合并两个有序(从小到大)顺序表为一个顺序表
- 图形界面模拟一个顺序栈的实现
- 两个栈实现一个顺序栈
- 一个简单C顺序栈的实现
- C#实现顺序表
- C#实现顺序表
- 线性表顺序实现
- 顺序表的实现
- 顺序表的实现
- 线性表顺序实现
- 顺序表的实现
- 顺序表的实现
- 线性表顺序实现
- 顺序表的实现
- Python学习笔记——基础数学运算(只要五分钟就能掌握系列)
- MySQL5.5安装教程
- 求含有两个7的数
- 常用字符串查找函数
- DIscuz论坛上传附件2M限制修改
- 实现一个顺序表
- 第十一节 java面向对象,封装的简单介绍
- 三个数比较大小2
- 从头学起前端框架vue.js 第一天
- Redis应用场景
- nested exception is java.lang.IllegalStateException: Encountered invalid @Scheduled method
- leetcodeOJ 306: Additive Number
- (1)常规窗口在qt中对应的名称(以属性窗口为例)
- Maven学习笔记(一)——Maven安装及配置