Loading...

顺序表操作

2024-12-03
0
-
- 分钟
|

顺序表操作

#include<iostream>using namespace std;#define maxsize 20 typedef struct{    int data[maxsize];  int last;}SeqList; // 顺序表初始化SeqList *init_seqList(){    SeqList *L; L = new SeqList();  L->last = -1;   return L;} // 插入操作int insert_seqList(SeqList *L, int i, int x){ int j;  if(L->last == maxsize-1){       cout<<"表满"<<endl;       return -1;  }   if(i<1 || i>L->last+2){     cout<<"插入位置错"<<endl;    }   for(j = L->last; j>i-1;j--){        L->data[j+1] = L->data[j]; // 节点移动  }   L->data[i-1] = x;   L->last++;  return 1;}  // 时间复杂度O(n), 移动 n-i+1个元素  // 删除int delete_SeqList(SeqList *L, int i){ // 删除的是第几个元素,下标减一    int j;  if(i<1 || i>L->last+1){     cout<<"不存在"<<endl;  }   for(int j=i;j<=L->last;j++){        L->data[j-1] = L->data[j];  }   L->last--;  return 1;} // 复杂度O(n) // 查找 int location_SeqList(SeqList *L, int x){    int i=0;    while(i<=L->last && L->data[i] != x){       i++;    }   if(i>L->last) return -1;    else return i;} // (n+1)/x 的平均比较// 应用举例 // 划分算法 void part(SeqList *L) {    int i, j;    int x, temp;    x = L->data[0]; // 将基准值置于x中    i = 1; // i从1开始,j从L->last位置开始    j = L->last;    while (i <= j) {       // 寻找比基准大的元素        while (i <= L->last && L->data[i] < x) {            i++;        }        while (j >= 0 && L->data[j] >= x) {        // 寻找比基准小的元素            j--;        }        if (i < j) {        // 交换找到的元素,直到i和j交错            temp = L->data[i];            L->data[i] = L->data[j];            L->data[j] = temp;        }    }    L->data[0] = L->data[j];    // 最后将基准元素放置到正确的位置    L->data[j] = x;} // 时间复杂是O(n) // 顺序表合并void merge(SeqList *A, SeqList *B, SeqList *C){ int i,j,k;  i=0;j=0;k=0;    while(i<=A->last && j<=B->last){        if(A->data[i] < B->data[j]) C->data[k++] = A->data[i++];        else C->data[k++] = B->data[j++];   }   while(i<=A->last) C->data[k++] = A->data[i++];  while(j<=B->last) C->data[k++] = B->data[j++];  C->last = k-1; // k会多加一次 } // 复杂度O(m+n)  int main(){    SeqList *L; L = init_seqList(); // 大小为20        return 0;}
上一篇 没有了
下一篇 链表操作复习

文章目录