c语言学习之顺序表操作
来源:互联网 发布:数据情报 编辑:程序博客网 时间:2024/05/02 06:11
//seqlist.h
#ifndef _SEQLIST_H_
#define _SEQLIST_H_
#define MAXSIZE 100
typedef struct
{
int listLen; //节点数量
DATA_T dataList[MAXSIZE+1];
}seqListType;
/* 初始化顺序表 */
void seqlist_init(seqListType *sl);
/* 返回顺序表的元素数量 */
int seqlist_length(seqListType *sl);
/* 向顺序表中添加元素 */
int seqlist_add(seqListType *sl,DATA data);
/* 向顺序表中插入元素 */
int seqlist_insert(seqListType *sl,int n,DATA data);
/* 向顺序表中删除元素 */
int seqlist_delete(seqListType *sl,int n);
/* 根据序号返回元素 */
DATA *seqlist_find_by_num(seqListType *sl,int n);
/* 按关键字查找 */
int seqlist_find_by_cont(seqListType *sl,int *key);
/* 遍历顺序表中的内容 */
int seqlist_all(seqListType *sl);
#endif
//seqlist.c
#include <stdio.h>
void seqlist_init(seqListType *sl)
{
sl->listLen = 0;
}
int seqlist_length(seqListType *sl)
{
return sl->listLen;
}
int seqlist_add(seqListType *sl,DATA data)
{
if(sl->listLen >= MAXSIZE)
{
printf("seqlist is full,can't add!\n");
return -1;
}
else
{
sl->dataList[++sl->listLen] = data;
}
return 0;
}
int seqlist_insert(seqListType *sl,int n,DATA data)
{
int i = 0;
if(sl->listLen >= MAXSIZE)
{
printf("seqlist is full,can't insert!\n");
return -1;
}
for(i=sl->listLen;i>=n;i--)
{
sl->dataList[i+1] = sl->dataList[i];
}
sl->dataList[n] = data;
sl->listLen++;
return 0;
}
int seqlist_delete(seqListType *sl,int n)
{
int i = 0;
if(sl->listLen == 0)
{
printf("listLen is null\n");
return -1;
}
if(n>(sl->listLen))
{
printf("the element can't find!\n");
return -1;
}
for(i=n;i<(sl->listLen);i++)
{
sl->dataList[i] = sl->dataList[i+1];
}
sl->listLen--;
return 0;
}
DATA *seqlist_find_by_num(seqListType *sl,int n)
{
if((n<1) || (n>(sl->listLen)))
{
printf("the element can't find!\n");
return NULL;
}
return &(sl->dataList[n]);
}
int seqlist_find_by_cont(seqListType *sl,char *key)
{
int i = 0;
for(i = 1;i<=(sl->listLen);i++)
{
if(strcmp(sl->dataList[i].key,key) == 0)
{
return i;
}
}
return 0;
}
- c语言学习之顺序表操作
- C语言学习之顺序表详解
- C语言实现线性表之顺序存储结构操作
- c语言之顺序表
- c语言学习之顺序结构
- 顺序表基本操作-C语言
- C语言 简单的 顺序表操作
- C语言顺序表的基本操作
- 【重回C】c语言之顺序表的部分基本操作
- 数据结构之顺序栈的操作(C语言)
- 数据结构之顺序队列的操作(C语言)
- 数据结构之顺序队列的操作(C语言)
- 数据结构之顺序栈的操作(C语言)
- C语言学习——顺序表
- C语言线性表之顺序表
- 数据结构C语言实现之顺序表
- c语言数据结构之顺序表
- 学习笔记---线性表的基本操作---顺序存储(C语言)
- Android 系统的自启动原理
- ACM-选夫婿(结构体排序练习)
- 对qucik cocos2dx lua SocketTCP的再一次封装,导入全局实例,包含自定义事件
- NodeJs初学者经典入门解析
- mysql 线程查看管理
- c语言学习之顺序表操作
- 开启硬件加速 导致花屏问题 OpenGlRenderer 0x506 解决办法
- JTAG调试原理
- [资料整理]记一下英特尔atom处理器
- DropDownList 的使用
- 调试器工作原理(1):基础篇
- Java 自定义类加载器实现插件式开发
- 关于 Cached Physical Memory 和 Uncached Physical Memory
- Android框架Picasso的使用简介