#include <stdio.h>
#include <malloc.h>
#define InitSize 10
typedef struct{
int *data;
int MaxSize;
int length;
}SeqList;
void InitData(SeqList&); //初始化順序表
void IncreaseSize(SeqList & , int); //增加順序表長度
void InsertData(SeqList & , int , int); //插入資料
int DeleteData(SeqList & , int , int &); //洗掉資料
int SearchData(SeqList , int); //按位查找資料
int SearchNum(SeqList , int); //按值查找資料
int main(void){
SeqList line;
InitData(line); //初始化
IncreaseSize(line,5); //增加順序表長度
InsertData(line,1,1); //插入資料
InsertData(line,2,2);
InsertData(line,3,3);
InsertData(line,4,4);
InsertData(line,5,5);
printf("當前順序表中的資料是:"); //列印順序表中資料
for(int i = 0 ; i < line.length ; i ++){
printf("%d ",line.data[i]);
}
printf("\n");
int e = -1;
printf("洗掉的資料是:%d",DeleteData(line,2,e)); //洗掉資料
printf("\n");
printf("當前順序表中的資料是:"); //列印順序表中資料
for(int i = 0 ; i < line.length ; i ++){
printf("%d ",line.data[i]);
}
printf("\n");
printf("查找的資料是:%d",SearchData(line,2));
printf("\n");
printf("查找的值在第%d位,",SearchNum(line,4));
return 0;
}
//初始化
void InitData(SeqList &L){
L.data = https://www.cnblogs.com/Timesi/p/(int*)malloc(sizeof(int)*InitSize);
L.MaxSize = InitSize;
L.length = 0;
for(int i = 0 ; i < InitSize ; i ++){
L.data[i] = 0;
}
}
//增加順序表長度
void IncreaseSize(SeqList &L , int len){
int *p = L.data;
L.data = (int*)malloc(sizeof(int)*(L.MaxSize+len));
for(int i = 0 ; i < L.length ; i ++){
L.data[i] = p[i];
}
L.MaxSize = L.MaxSize + len;
free(p);
}
//插入資料
void InsertData(SeqList &L , int m , int n){
for(int j = L.length ; j >= m ; j --){
L.data[j] = L.data[j-1];
}
L.data[m-1] = n;
L.length ++;
}
//洗掉資料
int DeleteData(SeqList &L , int m , int &n){
n = L.data[m-1];
for(int i = m ; i <= L.length ; i ++){
L.data[i-1] = L.data[i];
}
L.length --;
return n;
}
//按位查找
int SearchData(SeqList L , int m){
return L.data[m-1];
}
//按數值查找
int SearchNum(SeqList L , int n){
for(int i = 0 ; i < L.length ; i++){
if(L.data[i] == n){
return i+1;
}
}
return -1;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/205315.html
標籤:其他
上一篇:codeforces 1304D Shortest and Longest LIS
下一篇:游LeetCode一月之閑談
