顺序表的实现
#include <stdio.h>
#include <stdlib.h>
#include "seqlist.h"
int main()
{
Pseqlist seq1;
seq1 = create_Null_Seqlist(20);
if(is_Null_seqlist(seq1))
printf("Empty\n");
//1f(-1 == locate_seqlist(seq1,5))
// printf("Empty!\n");
for(int i = 0; i < 10; i++){
seq1->element[i] = i + 1;
seq1->n++;
}
for(int i = 0; i < seq1->n; i++)
printf("%d ", seq1->element[i]);
printf("\n");
if(insert_Pre_seq(seq1,3,99))
for(int i = 0; i < seq1->n; i++)
printf("%d ", seq1->element[i]);
printf("\n");
if(deleteP_seq(seq1,8))
for(int i = 0; i < seq1->n; i++)
printf("%d ", seq1->element[i]);
printf("\n");
if(deleteV_seq(seq1,99))
for(int i = 0; i < seq1->n; i++)
printf("%d ", seq1->element[i]);
printf("\n");
return 0;
}
#include "seqlist.h"
#include <malloc.h>
Pseqlist create_Null_Seqlist(int m)
{
Pseqlist palist;
palist = (Pseqlist)malloc(sizeof(struct seqlist));
palist->element=(DataType*)malloc(sizeof(DataType)*m);
palist->maxnum = m;
palist->n = 0;
return palist;
}
//==========================================================
int is_Null_seqlist(Pseqlist palist)
{
return (0 == palist->n);
}
//===============================================
int locate_seqlist(Pseqlist palist, DataType x)
{
int i;
for(i = 0; i < palist->n; i++){
if( x == palist->element[i])
return i;
}
return -1;
}
//===========================================
int insert_Pre_seq(Pseqlist palist, int p, DataType x)
{
for(int i = palist->n-1; i >= p; i--)
palist->element[i+1]=
palist->element[i];
palist->element[p]=x;
palist->n++;
return 1;
}
//===========================================
int deleteP_seq(Pseqlist palist, int p)
{
for(int i = p; i < palist->n-1; i++)
palist->element[i] = palist->element[i+1];
palist->n--;
return 1;
}
//=====================================
int deleteV_seq(Pseqlist palist, DataType x)
{
deleteP_seq(palist,locate_seqlist
(palist,x));
return 1;
}
#ifndef _SEQLIST_H_
#define _SEQLIST_H_
typedef int DataType;
struct seqlist
{
int maxnum;
int n;
DataType* element;
};
typedef struct seqlist* Pseqlist;
Pseqlist create_Null_Seqlist(int m);
int is_Null_seqlist(Pseqlist palist);
int locate_seqlist(Pseqlist palist, DataType x);
int insert_Pre_seq(Pseqlist palist, int p, DataType x);
int deleteP_seq(Pseqlist palist, int p);
int deleteV_seq(Pseqlist palist, DataType x);
#endif // _SEQLIST_H_