顺序储存结构表(sqlist)
来源:互联网 发布:知乎 风扇灯什么牌子好 编辑:程序博客网 时间:2024/05/22 13:30
1、数据的存储结构(或者物理结构)
数据的存储结构指的是数据的逻辑结构在计算机存储器中的映像。存储结构是通过计算机语言所编制的程序来实现的,因而使依赖于据提的计算机语言,数据结构较常用的有四种储存表示,今天主要讲了顺序存储。
2、顺序存储(Sequential Storage):将数据结构中各元素按照其逻辑顺序存放于存储器一片连续的存储空间中(如c语言的一维数组),必须按照一定的线性方式存储。
3、顺序存储的c语言定义:
sqlist.h:
#ifndef _SQLIST_H
#define _SQLIST_H
#define N = 50
//类型转换
tyoedef data_t int ;
//定义一个结构体,并有一个结构体对象(sqlist)和一个指针类型(*sqlink)
typedef struct{
data_t data[N];
int last;
}sqlist_t, *sqlink_t;
//函数声明
void ClearSqlist(sqlink_t L);
void ShowList(sqlink_t L );
int Locate(sqlink_t L,data_t x );
int InsertSqlist(sqlink_t L,data_t x, int i);
int DelSqlist(sqlink_t L,int i);
#endif
###################################################################
sqlist.c: // 模块函数
#include <stdio.h>
#include "sqlist.h"
// 将顺序表内置空
void ClearSqlist(sqlink_t L)
{
L ->last = -1;
}
//打印顺序表元素
void ShowList(sqlink_t L )
{
int i;
for(i=0; i<L -> last; i++)
{
printf(" %d\n",L -> data[i]);
}
printf("\n");
}
//在顺序表中查找元素x第一次出现的位置
//查询失败返回 -1。
int Locate(sqlink_t L,data_t x)
{
int i=0;
while((i <= L -> last) && (L->data[i] != x))
{
i++;
if(i <= L -> last)
return i;
else
return -1;
}
}
//在顺序表L中插入一个元素x,插入位置为i
//插入失败返回-1
int InsertSqlink(sqlink_t L,data_t x, int i)
{
int j; //判断插入位置
if( (i < 0) || (i >= L->last +1) || (L ->last >N-1)) //输入i值合法性判断
return -1;
else
{
for(j = L ->last; j >= i; j--)
{
L -> data[j+1] = L->data[j]; //从last位数往后移一位(考虑若数组内存放满了数据)
}
}
L -> data[i] = x; //插入数值
L ->last ++; //last值自增
}
///从顺序表中删除第i个元素
//成功返回0
int DelSqlink(sqlink_t L,int i)
{
int j;
if( (i < 0) || (i >= L->last +1) || (L ->last >N-1)) //输入i值合法性判断
return -1;
else
{
for(j=j+1; j<=L ->lasr; j++)
{
L ->data[j-1] = L ->data[j];
}
L ->last --;
}
}
##################################################################################
main.c
#include <stdlib.h>
#include <stdio.h>
#include “sqlink.h”
int main(void)
{
int i;
sqlink_t L;
L = (sqlink_t)malloc( sizeof(sqlist_t));
ClearSqlist(L);
for(i=0; i<50; i++)
{
L ->data[i] = i;
}
L -> last =49;
//printf("Locate(L,26) = %d\n",Locate(L,26));
//InsertSqlink(L,1111,0);
//ShowList(L);
DelSqlink(L,25);
ShowList(L);
return 0;
}
############################################################
以上主要是顺序存储结构的定义及基础函数的编写。
- 顺序储存结构表(sqlist)
- 线性表(顺序sqlist.c)
- sqlist顺序表
- 顺序表《Sqlist》
- 线性表之<顺序表sqlist>的储存及插入、删除-C代码实现
- 线性表--顺序储存结构
- 线性表的顺序储存结构(向量 )(一)
- 数据结构 线性表的顺序储存结构
- 线性表--顺序储存结构 java实现
- 栈--顺序储存结构
- 顺序储存结构
- 顺序表SqList的C++代码实现
- 【数据结构】【顺序表】SqList *&L是什么意思
- 学生信息管理系统--Sqlist-顺序表
- 执行顺序与储存结构
- 线性表的顺序储存结构(静态)实现
- 线性表的顺序储存结构定义(动态)实现
- 线性表的顺序储存结构 初始化、查找、删除、插入
- 实验楼-楼赛第一期
- Servlet 工作原理解析(转载)
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 2 浏览ROS的文件系统
- 第八届蓝桥杯第一题购物单
- 2017年院赛E题 守望者的逃离
- 顺序储存结构表(sqlist)
- c# winfrom 分页实现,无DLL引用分享源代码和实现过程
- 利用PHPMailer发送邮件的一个小demo
- mybatis模糊查询实现
- 【编程】【leetcode】523. Continuous Subarray Sum
- Session案例 用户登录
- CTF之登录一下好吗?
- GIT简单入门——初级使用
- CSU