顺序表的基本操作和常见算法(Definition Only)
#include <stdio.h>
#define MAXSIZE 50
#define INIT_SIZE 10
/**
* Author: art1st-d
* Date: 2018/08/09
*/
typedef int ElemType;
// 静态分配
// typedef struct {
// ElemType *ata[MAXSIZE];
// int length;
// }SeqList;
// 动态分配
typedef struct {
ElemType *data;
int length;
}SeqList;
/******************** Function Definitions ********************/
bool ListInsert(SeqList &L, int i, ElemType e);
bool ListDelete(SeqList &L, int i, ElemType &e);
bool Del_Min(SeqList &L, ElemType &value); //删除最小元素
void Reverse(SeqList &L); //顺序表反转
void Del_X(SeqList &L, ElemType x); //删除值为x的元素
void Del_S_T(SeqList &L, ElemType s, ElemType t); //删除s与t之间的所有元素 L有序
bool Delete_Same(SeqList &L); //删除所有值相同的元素
bool Merge(SeqList A, SeqList B, SeqList C); //合并AB表为C
void Reverse(ElemType A[], int left, int right, int arraySize); //将一维数组A[m+n]中的m个元素和n个元素互换
void SearchExchangeInsert(ElemType A[], ElemType x); //顺序有序的线性表A,查找x,找到与后继元素互换,找不到插入,并保证A依然有序
int M_search(ElemType A[], ElemType B[], int n); //两个等长有序序列A,B,寻找它们的中位数
int Majority(int A[], int n); //找到数组A中的主元素(占据总体半数以上的元素)
void printSeqList(SeqList L); //打印SeqList元素
/******************** Function Implementations ********************/
/**
* 插入元素操作
*/
bool ListInsert(SeqList &L, int i, ElemType e) {
return true;
}
/**
* 删除元素操作
*/
bool ListDelete(SeqList &L, int i, ElemType &e) {
return true;
}
/**
* 删除最小元素
*/
bool Del_Min(SeqList &L, ElemType &value) {
return true;
}
/**
* 反转
*/
void Reverse(SeqList &L) {
}
/**
* 删除值为x的元素
*/
void Del_X(SeqList &L, ElemType x) {
}
/**
* 删除值在s-t之间的元素
*/
void Del_S_T(SeqList &L, ElemType s, ElemType t) {
}
/**
* 删除所有值相同的元素
*/
bool Delete_Same(SeqList &L) {
return true;
}
/**
* 合并AB表为C
*/
bool Merge(SeqList A, SeqList B, SeqList C) {
return true;
}
/**
* 将一维数组A[m+n]中的m个元素和n个元素互换
*/
void Reverse(ElemType A[], int left, int right, int arraySize) {
}
/**
* 顺序有序的线性表A,查找x,找到与后继元素互换,找不到插入,并保证A依然有序
*/
void SearchExchangeInsert(ElemType A[], ElemType x) {
}
/**
* 两个等长有序序列A,B,寻找它们的中位数
*/
int M_search(ElemType A[], ElemType B[], int n) {
return 0;
}
/**
* 找到数组A中的主元素(占据总体半数以上的元素)
*/
int Majority(int A[], int n) {
return 0;
}
int main() {
/* 主函数 */
return 0;
}