📄 sqlist.cpp
字号:
#include "StdAfx.h"
#include "typedef.h"
#include <stdio.h>
#include <malloc.h>
#include <conio.h>
#include <string.h>
// 名称:InitList_Sq
// 作用:新建一个顺序表
// 参数:(int)单个数据元素所占内存,(int)顺序表最大长度
// 返回值:成功:(Sqlist *)指向顺序表的指针
// 失败:0
Sqlist * InitList_Sq(int datasize,int maxsize)
{
Sqlist * plist = (Sqlist *)malloc(sizeof(Sqlist));
if (plist == 0)
return 0;
plist->buffer = (park_car *)malloc(sizeof(char) * datasize * maxsize);
if (plist->buffer == 0)
return 0;
plist->datasize = datasize;
plist->maxsize = maxsize;
plist->length = 0;
return plist;
}
// 名称:InsertList_Sq
// 作用:向指定顺序表插入一个元素
// 参数:(Sqlist *)指向顺序表的指针,(int)要求插入的位置,(int)指向所插入数据的指针
// 返回值:成功:(int)1
// 失败:(int)0
int InsertList_Sq(Sqlist * plist,int pos,park_car * element)
{
if (pos<0 || pos>plist->length)
return 0;
if (plist->length == plist->maxsize)
return 0;
for (int i=plist->length-1; i>pos; i--)
{
plist->buffer[i] = plist->buffer[i-1];
}
plist->buffer[pos] = * element;
plist->length++;
return 1;
}
// 名称:DeleteList_Sq
// 作用:从指定顺序表删除一个元素
// 参数:(Sqlist *)指向顺序表的指针,(int)要求删除元素的位置
// 返回值:成功:(int)1
// 失败:(int)0
int DeleteList_Sq(Sqlist * plist,int pos)
{
if (pos<0 || pos>=plist->length)
return 0;
for (int i=pos; i<plist->length; i++)
{
plist->buffer[i] = plist->buffer[i+1];
}
plist->length--;
return 1;
}
// 名称:DestroyList_Sq
// 作用:销毁一个顺序表
// 参数:(Sqlist *)指向顺序表的指针
// 返回值:空
void DestroyList_Sq(Sqlist * plist)
{
free(plist->buffer);
free(plist);
}
// 名称:Searchnumber_Sq
// 作用:查找车牌号码
// 参数:(Sqlist *)指向顺序表的指针,(char *)车牌号码
// 返回值:成功:(int)元素所在位置+1
// 失败:0
int Searchnumber_Sq(Sqlist * plist,char * number)
{
for (int i=0; i<plist->length; i++)
{
if (strcmp(plist->buffer[i].number, number) == 0)
{
return (i+1);
}
}
return 0;
}
//向顺序表填充二维数组
bool InPush(Sqlist * plist,int Inlong,int Inbreadth)
{
int i , j , ii = 0;
for (i = 1 ; i<=Inbreadth ; i++)
{
for (j = 1 ; j<=Inlong ; j++)
{
plist->buffer[ii].parkplace.p_breadth = j;
plist->buffer[ii].parkplace.p_long = i;
ii++;
}
}
//********************************************************* Debug
#ifdef DEBUG
printf("\n\nDebug\n");
for (int debug_i = 0 ; debug_i < user.Dimension.p_long * user.Dimension.p_breadth ; debug_i++)
{
printf("plist->buffer[%d].parkplace = %d-%d\n",debug_i,plist->buffer[debug_i].parkplace.p_long,plist->buffer[debug_i].parkplace.p_breadth);
}
printf("\n\n");
getch();
#endif
//**********************************************************
return true;
}
//判断是否为满
bool IsFull(Sqlist * plist)
{
if (plist->length == plist->maxsize)
return true;
return false;
}
//判断是否为空
bool IsEmpty(Sqlist * plist)
{
if (plist->length == 0)
return true;
return false;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -