C语言获取mysql表数据结构_【数据结构】实现顺序表(c语言)
头文件:
#ifndef _SEQLIST_H
#define _SEQLIST_H
#include
#define INIT_SIZE 8
typedef struct SeqList
{
int *base;
size_t size;
size_t capacity;
}SeqList;
// 要实现的函数
void InitList(SeqList *list);
int isfull(SeqList *list);
int isempty(SeqList *list);
void show_list(SeqList *list);
void tail_insert(SeqList *list,int x);
void head_insert(SeqList *list,int x);
void sort(SeqList *list);
void head_delete(SeqList *list);
void tail_delete(SeqList *list);
void pos_insert(SeqList *list,int x,int pos);
void val_insert(SeqList *list, int x);
void pos_delete(SeqList *list,int pos);
int find(SeqList *list,int x);
void val_delete(SeqList *list,int x);
int length(SeqList *list);
void reverse(SeqList *list);
void clear(SeqList *list);
void destroy(SeqList *list);
void quit_system(SeqList *list,int* x);
#endif
fun:
#include "SeqList.h"
// 定义两个返回值接收判断函数的结果
int fret = isfull;
int eret = isempty;
// 初始化顺序表
void InitList(SeqList *list)
{
list->size = 0;
list->capacity = INIT_SIZE;
list->base = (int*)malloc(sizeof(int)*list->capacity);
}
// 判断顺序表是否满
int isfull(SeqList *list)
{
if (list->size >= list->capacity)
{
return -1;
}
else
return 0;
}
// 判断顺序表是否空
int isempty(SeqList *list)
{
if (list->size == 0)
{
return -1;
}
else
return 0;
}
// 显示
void show_list(SeqList *list)
{
int i;
if (list->size == 0)
{
printf("the table is empty!\n");
}
for (i = 0; i < list->size; ++i)
{
printf("%d ", list->base[i]);
}
printf("\n");
}
// 尾插
void tail_insert(SeqList *list,int x)
{
if (fret == -1)
{
printf("the table is full,can not insert!\n");
return;
}
list->base[list->size] = x;
list->size++;
}
// 头插
void head_insert(SeqList *list,int x)
{
int i;
if (fret == -1)
{
printf("the table is full,can not insert!\n");
return;
}
for (i = list->size; i > 0; --i)
{
list->base[i] = list->base[i - 1];
}
list->base[0] = x;
list->size++;
}
// 排序
void sort(SeqList *list)
{
int i;
int j;
int temp;
for (i = 1; i < list->size; ++i)
{
for (j = 0; j < list->size - i; ++j)
{
if (list->base[j]>list->base[j + 1])
{
temp = list->base[j];
list->base[j] = list->base[j + 1];
list->base[j + 1] = temp;
}
}
}
}
// 头删
void head_delete(SeqList *list)
{
int i;
if (eret == -1)
{
printf("the table is empty,can not delete!\n");
return;
}
for (i = 0; i < list->size; ++i)
{
list->base[i] = list->base[i + 1];
}
list->size--;
}
// 尾删
void tail_delete(SeqList *list)
{
if (eret == -1)
{
printf("the table is empty,can not delete!\n");
return;
}
list->size--;
}
// 按位插入
void pos_insert(SeqList *list,int x,int pos)
{
int i;
if (fret == -1)
{
printf("the table is full,can not insert!\n");
return;
}
if (pos<0 || pos>list->size)
{
printf("the position is illegal!\n");
return;
}
else
{
for (i = list->size; i > pos; --i)
{
list->base[i] = list->base[i - 1];
}
list->base[pos] = x;
list->size++;
}
}
// 按值插入
void val_insert(SeqList *list,int x)
{
if (fret == -1)
{
printf("the table is full,can not insert!\n");
return;
}
tail_insert(list,x);
sort(list);
}
// 按位删除
void pos_delete(SeqList *list,int pos)
{
int i;
if (eret == -1)
{
printf("the table is empty,can not delete!\n");
return;
}
if (pos<0 || pos>list->size)
{
printf("the position is illegal!\n");
return;
}
else
{
for (i = pos; i < list->size; ++i)
{
list->base[i] = list->base[i + 1];
}
list->size--;
}
}
// 查找
int find(SeqList *list,int x)
{
int i;
for (i = 0; i < list->size; ++i)
{
if (list->base[i] == x)
{
return i;
}
}
printf("the number is not exit!\n");
return 0;
}
// 按值删除
void val_delete(SeqList *list,int x)
{
int ret = find(list, x);
int i;
if (eret == -1)
{
printf("the table is empty,can not delete!\n");
return;
}
if (ret == -1)
{
printf("the number is not exist!\n");
return;
}
else
{
for (i = ret; i size; ++i)
{
list->base[i] = list->base[i + 1];
}
list->size--;
}
}
// 求长度
int length(SeqList *list)
{
return list->size;
}
// 反转
void reverse(SeqList *list)
{
int temp;
int i = 0;
int j = list->size - 1;
if (eret == -1)
{
printf("the table is empty,can not operate!\n");
return;
}
while (i < j)
{
temp = list->base[i];
list->base[i] = list->base[j];
list->base[j] = temp;
++i;
--j;
}
}
// 清空
void clear(SeqList *list)
{
list->size = 0;
}
// 摧毁
void destroy(SeqList *list)
{
list->base = NULL;
}
// 退出系统
void quit_system(SeqList *list,int *x)
{
*x = 0;
}
主函数:
// c实现顺序表
#include "SeqList.h"
int main()
{
SeqList mylist;
InitList(&mylist);
int input = 1;
int insert = 0;
int pos = 0;
while (input)
{
printf("*********************************************************************\n");
printf("* [1] show_list [2] tail_insert *\n");
printf("* [3] head_insert [4] sort *\n");
printf("* [5] head_delete [6] tail_delete *\n");
printf("* [7] pos_insert [8] val_insert *\n");
printf("* [9] pos_delete [10] find *\n");
printf("* [11] val_delete [12] length *\n");
printf("* [13] reverse [14] clear *\n");
printf("* [15] destroy [16] quit_system *\n");
printf("*********************************************************************\n");
printf("please enter your choose:");
scanf_s("%d", &input);
switch (input)
{
case 1:
show_list(&mylist);
break;
case 2:
printf("please enter the number want to insert:\n");
while (scanf_s("%d", &insert),insert != -1)
{
tail_insert(&mylist, insert);
}
break;
case 3:
printf("please enter the number want to insert:\n");
while (scanf_s("%d", &insert), insert != -1)
{
head_insert(&mylist, insert);
}
break;
case 4:
sort(&mylist);
break;
case 5:
head_delete(&mylist);
break;
case 6:
tail_delete(&mylist);
break;
case 7:
printf("please enter the number want to insert:\n");
scanf_s("%d", &insert);
printf("please enter the position :\n");
scanf_s("%d", &pos);
pos_insert(&mylist, insert, pos);
break;
case 8:
printf("please enter the number want to insert:\n");
scanf_s("%d", &insert);
val_insert(&mylist, insert);
break;
case 9:
printf("please enter the position :\n");
scanf_s("%d", &pos);
pos_delete(&mylist, pos);
break;
case 10:
printf("please enter the number want to find:\n");
scanf_s("%d", &insert);
printf("at the %d\n", find(&mylist, insert));
break;
case 11:
printf("please enter the number want to delete:\n");
scanf_s("%d", &insert);
val_delete(&mylist, insert);
break;
case 12:
printf("the table's length is %d\n", length(&mylist));
break;
case 13:
reverse(&mylist);
break;
case 14:
clear(&mylist);
break;
case 15:
destroy(&mylist);
break;
case 16:
quit_system(&mylist, &input);
break;
default:
break;
}
}
return 0;
}
显示:
尾插:
头插:
排序:
头删:
尾删:
定位插入:
按值插入:
按位删除:
查找:
按值删除:
求长度:
反转:
清除:
退出系统:
C语言获取mysql表数据结构_【数据结构】实现顺序表(c语言)相关推荐
- 数据结构之python实现顺序表
数据结构之python实现顺序表 顺序表是指采用顺序存储的方式来存储数据元素的线性表. 初始化以及创建顺序表 class SequenceList(object):def __init__(self) ...
- 黑马程序员 C语言数据结构与算法之线性表(链表/栈/队列/顺序表)
C语言 链表基础知识清晰讲解(黑马) 讲的蛮好,就是音质不太好,有时听不清讲的啥! [黑马]数据结构与算法之线性表(链表/栈/队列/顺序表)[配套源码 嘛蛋,看错了,这是java的... 文章目录 链 ...
- 数据结构学习笔记:顺序表的删除操作及其演化题目总结
目录 前言 例题 类似题目1 类似题目2 类似题目3 类似题目4 类似题目5 结语 前言 文章代码皆在Dev-C++ 5.11中测试,主要是总结一些方法,从而总结一些规律使自己进一步地深化学习内容,仅 ...
- java数据结构与算法之顺序表与链表深入分析
转载请注明出处(万分感谢!): http://blog.csdn.net/javazejian/article/details/52953190 出自[zejian的博客] 关联文章: java数据结 ...
- 【数据结构】手撕顺序表
文章目录 一.什么是线性表 二.顺序表 三.手撕顺序表 属性定义 构造方法 接口实现 确保顺序表空间 增加元素 打印顺序表 判断顺序表中是否包含某个元素 查找元素 获取 pos 位置的元素 将 pos ...
- 数据结构与算法:顺序表和链表的常用操作 (很全,基本涵盖本章所有算法)
文章目录 前言: 一.顺序表 二.链表 前言: 数据结构中的表操作算是里面较为简单的章节,但也比较重要,3月份学完的此章节,左思右想今天还是写篇 关于顺序表和链表的博客. ps : 复制代码可以在编译 ...
- Python数据结构与算法(四)--顺序表
顺序表 在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等.一组数据中包含的元素个数可能发生变化(可以增加或删除元素). 根 ...
- (王道408考研数据结构)第二章线性表-第二节2:顺序表的操作
文章目录 一:顺序表初始化和销毁 二:顺序表的打印 三:顺序表插入 四:顺序表的删除 五:顺序表查找 (1)使用顺序查找法查找 (2)使用二分查找法完成 顺序表使用动态数组方式实现,结点定义如下 ty ...
- php算法结构,PHP数据结构与算法:顺序表
一.概念 把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里,元素间的顺序关系由它们的存储顺序自然表示. 逻辑顺序与物理顺序一致 元素之间的关系以元素在计算机内的"物理位置相邻&qu ...
- 数据结构“入门”—手撕顺序表
目录 一:顺序表基本概念 二:顺序表的实现 1 创建顺序表 2 初始化顺序表 3 检查是否需要扩容 4 打印顺序表 5 销毁顺序表 三:顺序表重要功能-"增 删 查 改" 1:增加 ...
最新文章
- LeetCode简单题之到目标元素的最小距离
- 我的世界正版moba服务器,《我的世界》需要氪金?反观《迷你世界》才知道差距!...
- php读取js验证码,js实现获取短信验证码实例
- 【报错笔记】Eclipse导入Maven项目时pom.xml报错,项目上有红感叹号。
- [mybatis]映射文件_select_resultMap_discriminator鉴别器
- pycharm导入本地文件,程序运行正常,但导入模块时出现红色波浪线
- 【pytest】命令行选项
- c++ 调用windows tts_有关调用约定的历史 – 第三部分
- npn三种波形失真_RF测试笔记:三阶交调失真概述及测试
- 五笔字根表识别码图_五笔输入法口诀(五笔字根表快速记忆图)
- 如何用Directshow采集摄像头图像
- 系统性能测试实施流程
- 基于CC2430的基础实验5---时钟模式
- 【阿里巴巴Java编程规范学习 三】Java异常日志规约
- 测试统计学卡方,t检验,Kappa和Kendall评价
- 2022-06微软漏洞通告
- 微信小程序自定义picker
- 刚安装完成的Jmeter5打开之后没有工作台
- 手淘流量是什么意思?手淘搜索流量怎么增加?
- hadoop集群的集中管理