顺序表基本操作

您所在的位置:网站首页 贵书写顺序 顺序表基本操作

顺序表基本操作

#顺序表基本操作| 来源: 网络整理| 查看: 265

//#include //#include   //#include // //using namespace std; //#define MaxSize 50 //#define InitSize 100 静态分配 //typedef struct { //    int data[MaxSize]; //    int length; // //}SqList; // 动态分配 //typedef struct { //    int* data; //    int length,maxSize; //}SqList01; // 插入操作 //bool ListInsert(SqList& L, int i, int e) //{ //    if (iL.length + 1) //        return false; // //    if (L.length >= MaxSize) //        return false; // //    for (int j = L.length; j >= i; j--) //        L.data[j] = L.data[j-1]; //    L.data[i-1] = e; //    L.length++; //    return true; //} // // 删除操作 //bool ListDelete(SqList& L, int i, int& e) //{ //    if (i > L.length || i < i) //        return false; //    e = L.data[i - 1]; //    L.length--; //    return true; //} // 查找 //int LocateElem(SqList L, int e) //{ //    int i; //    for (i = 0; i < L.length; i++) //        if (L.data[i] = e) //            return i + 1; //    return 0; //} 删除最小值 //bool S_Del_Min(SqList& L,int &e) //{ //    int k; //    if (L.length == 0) //        return false; //    int Min = L.data[0]; //    for (int i = 1; i < L.length; i++) //    { //        if (Min > L.data[i]) //            k = i; //    } //    L.data[k] = L.data[L.length-1]; //    L.length--; //    return true; //} // // 元素逆置 //void Swap(SqList& L) //{ //    int swap; //    for (int i = 0, j = L.length-1; j > i; j--, i++) //    { //        swap = L.data[j]; //        L.data[j] = L.data[i]; //        L.data[i] = swap; //    } //} 初始化 //void InitList(SqList& L) { //    L.length = 0; //    cout //        return 0; //    } //    for (int k = 0; k < L.length; k++)        //输出顺序表  //    { //        cout // //        cin >> L.data[i]; //        L.length++; //    } //} // 01_顺序表里面删除值x //void Del_x_01(SqList& L, int e) //{ //    int j = 0; //    for (int i = 0; i < L.length; i++) //    { //        if (L.data[i]!=e) //        { //            L.data[j] = L.data[i]; //            j++; //        } //    } //    L.length = j; //} // 02_顺序表删除值x //void Del_x_02(SqList& L, int e) //{ //    int k = 0; //    for (int i = 0; i < L.length; i++) //    { //        if (L.data[i] == e) //        { //            k++; //        } //        else //        { //            L.data[i - k] = L.data[i]; //        } //    } //    L.length = L.length - k; //} // 01_有序表删除区间元素 //bool Del_s_t01(SqList& L, int s, int t) //{ //    if (s >= t||L.length==0) //        return false; //    int k = 0; //    for (int i = 0; i < L.length; i++) //    { //        if (L.data[i] > s && L.data[i] < t) //        { //            k++; //        } //        else //        { //            L.data[i - k] = L.data[i]; //        } //    } //    L.length = L.length - k; //    return true; //} 02_有序表删除区间元素 //bool Del_s_t02(SqList& L, int s, int t) //{ //    int i, j; //    if (s >= t || L.length == 0) //        return false; //    //找最小值 // //    for (i = 0; i < L.length && L.data[i] = L.length) //        return false; //    for (j = i; j < L.length && L.data[j] < t; j++); //     //    while (j < L.length) //    { //        L.data[i] = L.data[j]; //        j++; //        i++; // //    } //    L.length = i; //} // 从顺序表中区间元素 //bool Del_s_t001(SqList& L, int s, int t) //{ //    int k = 0; //    if (s >= t || L.length == 0) //        return false; //    for (int i = 0; i < L.length; i++) //    { //        if (L.data[i] >= s && L.data[i] //            L.data[i-k] = L.data[i]; //             //        } //    } //    L.length = L.length - k; //    return true; //} // 从有序表删除重复值(插入排序思想) //bool Del_mor(SqList& L) //{ // //    if (L.length == 0) //        return false; //    int i, j; //    for (i = 0, j = 1; j < L.length; j++) //    { //        if (L.data[i] != L.data[j]) //        { //            L.data[++i] = L.data[j]; //        } // // //    } //    L.length = i + 1; //    return true; //} // // 双有序表合并 //bool Add_Two(SqList L, SqList I, SqList01& A) //{ //    int i = 0, j = 0, k = 0; //    if (L.length + I.length > A.maxSize) //        return false; // //    while (j < L.length || i < I.length) //    { //        if (L.data[j] > I.data[i]) //            A.data[k++] = I.data[i++]; //        else //            A.data[k++] = L.data[j++]; //    } //    for (; i < I.length; i++) //        A.data[k++] = I.data[i++]; // //    for (; j < L.length; j++) //        A.data[k++] = L.data[j++]; //    A.length = k - 1; //    return true; // //} 元素逆置 //bool Reverse(int A[], int left, int right, int arraySize) //{ //    if (left >= right || right >= arraySize) //        return false; //    int mid = (left + right) / 2; //    for (int i = 0; i < mid - left; i++) //    { //        int temp; //        temp = A[left + i]; //        A[left + i] = A[right - i]; //        A[right - i] = temp; //    } //} 数组内部顺序表交换位置 //void Exchange(int a[], int m, int n, int arrsize) //{ //    Reverse(a, 0, m + n - 1, arrsize); //    Reverse(a, 0, n - 1, arrsize); //    Reverse(a, n, m + n - 1, arrsize); //} 顺序查找 //int Search_Seq(SqList L, int e) //{ //    L.data[0] = e; //    for (int i = L.length; L.data[i] != e; --i) //        return i; //} // //void Found01(SqList& L, int e) //{ //    int i; //    for (i = 0; i < L.length && L.data[i] < e; i++); //    if (L.data[i] == e&&i!=L.length-1) //    { //        int temp = L.data[i]; //        L.data[i] = L.data[i + 1]; //        L.data[i + 1] = temp; //    } //    else //    { //        for (int j = L.length; j > i; j--) // //            L.data[j] = L.data[j - 1]; //        L.data[i] = e; //        L.length++; // //    } //} // //void SearchExchangeInsert(SqList &L,int e) //{ //    int low = 0, high = L.length-1; //    int mid,j; //    while (low //        int temp = L.data[mid]; //        L.data[mid] = L.data[mid+ 1]; //        L.data[mid + 1] = temp; //    } //    if (low > high) //    { //        for (j = L.length-1; j > high; j--) // //            L.data[j+1] = L.data[j]; //        L.data[j+1] = e; //        L.length++; //    } //} // 数组元素集体左移动 //void Reverse(SqList& L, int form, int to) //{ //    int temp, i; //    for ( i = 0; i < (to - form + 1) / 2; i++) //    { //        temp = L.data[form + i]; //        L.data[form + i] = L.data[to - i]; //        L.data[to - i] = temp; //    } //} //void Converse(SqList& L, int p) //{ //    Reverse(L, 0, p - 1); //    Reverse(L, p, L.length - 1); //    Reverse(L, 0, L.length - 1); //} // 两个数组寻找中位数 //int FoundMid(SqList A, SqList B,int &mid) //{ //    int s1 = 0, d1 = A.length - 1, m1, s2 = 0, d2 = B.length - 1, m2; // //    while (s1 != d1 || s2 != d2) //    { //        m1 = (s1 + d1) / 2; //        m2 = (s2 + d2) / 2; //        if (A.data[m1] ==B.data[ m2]) //            return A.data[m1]; //        if (A.data[m1] < B.data[m2])  //        { //            if ((s1 + d1) % 2 == 0) //            { //                s1 = m1; //                d2 = m2; //            } //            else //            { //                s1 = m1 + 1; //                d2 = m2; //            } //        } //        else //        { //            if ((s2 + d2) % 2 == 0) //            { //                d1 = m1; //                s2 = m1; //            } //            else //            { //                d1 = m1; //                s1 = m2+ 1; // //            } //        } //    } //    return A.data[s1] < B.data[s2] ? A.data[s1] : B.data[s2]; //} //int main() //{ //        SqList L; //        InitList(L); //        CreatList(L,5); //        Print(L); //        //Swap(L); //        //Del_x_01(L, 10); //        //Del_x_02(L, 10); //        //Del_s_t01(L, 10, 30); //        //Del_s_t02(L, 10, 30);   //        //Del_s_t001(L, 10, 30); //        //Del_mor(L); //        //SearchExchangeInsert(L, 30); //        //Found01(L, 30); //        //Converse(L, 2); // // // // // // //        Print(L); //         //         //        return 0; //}  



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3