(1)test.h中的代码
#ifndef _TEST_H_
#define _TEST_H_#define MAX_SIZE 10
typedef int datetype;
typedef struct seqlist
{
datetype arr[MAX_SIZE];
int size;
}seqlist,*pseqlist;
void initseqlist(pseqlist pseq); //初始化顺序表
void pushback(pseqlist pseq, datetype date); //尾插法插入元素
void print(pseqlist pseq); //打印顺序表
void popback(pseqlist pseq); //尾删法删除元素
int empty(pseqlist pseq); //顺序表是否为空
void pushfront(pseqlist pseq, datetype date); //头插法插入元素
void popfront(pseqlist pseq); //头删法删除元素
void insert(pseqlist pseq, int pos, datetype date); //任意位置插入元素
void erase(pseqlist pseq, int pos); //任意位置删除元素
void panman(pseqlist pseq); //如果表满,输出提示信息
void pankong(pseqlist pseq); //如果表空,输出提示信息
#endif
(2)test.c中的代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include<assert.h>
#include"test.h"
int empty(pseqlist pseq)
{
if (pseq->size == 0)
{
return -1;
}
return 1;
}
void panman(pseqlist pseq)
{
assert(pseq);
if (pseq->size >= MAX_SIZE)
{
printf("顺序表已满\n");
return;
}
}
void pankong(pseqlist pseq)
{
assert(pseq);
if (empty(pseq) == -1)
{
printf("此顺序表为空\n");
return;
}
}
void initseqlist(pseqlist pseq)
{
assert(pseq);
pseq->size = 0;
}
void pushback(pseqlist pseq, datetype date)
{
panman(pseq);
pseq->arr[pseq->size++] = date;
}
void print(pseqlist pseq)
{
assert(pseq);
for (int i = 0; i < pseq->size; ++i)
{
printf("%d ", pseq->arr[i]);
}
printf("\n");
}
void popback(pseqlist pseq)
{
pankong(pseq);
pseq->size--;
}
void pushfront(pseqlist pseq, datetype date)
{
panman(pseq);
for (int i = pseq->size; i >0; --i)
{
pseq->arr[i] = pseq->arr[i-1];
}
pseq->arr[0] = date;
pseq->size++;
}
void popfront(pseqlist pseq)
{
pankong(pseq);
for (int i = 1; i < pseq->size; ++i)
{
pseq->arr[i-1] = pseq->arr[i];
}
pseq->size--;
}
void insert(pseqlist pseq, int pos, datetype date)
{
panman(pseq);
for (int i = pseq->size; i > pos; --i)
{
pseq->arr[i] = pseq->arr[i - 1];
}
pseq->arr[pos] = date;
pseq->size++;
}
void erase(pseqlist pseq, int pos)
{
pankong(pseq);
for (int i = pos + 1; i < pseq->size; ++i)
{
pseq->arr[i-1] = pseq->arr[i];
}
pseq->size--;
}
(3)shunxubiao.c的代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include"test.h"
int main()
{
seqlist s;
pseqlist pseq = &s;
initseqlist(pseq);
pushback(pseq, 1);
pushback(pseq, 2);
pushback(pseq, 3);
pushback(pseq, 5);
pushback(pseq, 6);
print(pseq);
popback(pseq);
print(pseq);
pushfront(pseq, 0);
print(pseq);
popfront(pseq);
print(pseq);
insert(pseq, 3, 4);
print(pseq);
erase(pseq, 3);
print(pseq);
system("pause");
return 0;
}
测试时可在shunxubiao.c中分为顺序表为空时、顺序表满时,任意位置插入及删除要测试头元素、尾元素,及中间元素,希望对大家有所帮助!