标签:sizeof 静态 free struct size void list 静态链表 return
#include "stdafx.h"
#include <malloc.h>
#define MaxSize 50
typedef char ElemType;
typedef struct
{
ElemType data[MaxSize];
int length;
} SqList;
// 一维数组即是顺序表
void InitList(SqList * &L)
{
L = (SqList *)malloc(sizeof(SqList));
L->length = 0;
}
void DestroyList(SqList *L)
// 释放顺序列表
{
free(L);
}
int ListEmpty(SqList *L)
{
return (L->length == 0);
}
int ListLength(SqList *L)
{
return L->length;
}
void DispList(SqList *L)
{
int i;
if (ListEmpty(L))return;
for (i = 0; i < L->length; i++)
{
printf_s("%c", L->data[i]);
}
printf_s("\n");
}
int GetElem(SqList *L, int i, ElemType &e)
// 获取顺序表第i个元素
{
if (i<1 || i>L->length)
{
return 0;
}
e = L->data[i - 1];
return 1;
}
int LocateElem(SqList *L, ElemType e)
// 在顺序表中查找元素e
{
int i = 0;
while (i<L->length && L->data[i]!=e)
{
i++;
}
//
if (i >= L->length)
{
return 0;
}
return i+1;
}
int ListInsert(SqList *&L, int i, ElemType e)
// 在顺序列表L中第i个位置上插入元素e
{
int j;
if (i<1 || i>L->length + 1)
{
return 0;
}
i--;
for (j = L->length; j < i; j--)
{
L->data[j] = L->data[j - 1];
}
L->data[i] = e;
L->length++;
return 1;
}
int ListDelete(SqList *&L, int i, ElemType &e)
// 在顺序列表中删除第i个元素
{
int j;
if (i < 1 || i>L->length)
{
return 0;
}
i--;
e = L->data[i];
for (j = i; j < L->length - 1; j++)
{
L->data[j] = L->data[j + 1];
}
L->length--;
return 1;
}
标签:sizeof 静态 free struct size void list 静态链表 return
原文地址:http://www.cnblogs.com/tuqunfu/p/7226291.html