精华内容
下载资源
问答
  • 顺序表逆置

    2018-10-04 23:17:58
    这个可以应用于顺序表逆置,查找,或者删除,顺序表作为存储结构,实现将线性表(a0,a1,a2,…an-1)就地逆置的操作,所谓“就地”,是指辅助空间应为O(1)。
  • 问题:试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,...,an)逆置为(an,an-1,...,a1) 算法思想:观察原表和新表顺序,逆置后的线性表是将原表相应位置的元素进行交换,即交换第一个和...
  • 8578 顺序表逆置

    2013-06-04 23:46:08
    8578 顺序表逆置
  • python顺序表逆置

    2021-04-26 20:50:02
    python顺序表逆置 list=[] num = input() num = int(num) t=1; while num!=-1: if num>0: if t>1: list.insert(0,num) num = input() num = int(num) elif t==1: list.insert(0,num) num =

    python顺序表逆置

    
    list=[]
    num = input()
    num = int(num)
    t=1;
    while num!=-1:
        if num>0:
            list.insert(0,num)
            num = input()
            num = int(num)
        else  :
            break;
    print(list)
    
    
    
    
    
    展开全文
  • 顺序表逆置算法

    2011-10-08 14:37:25
    顺序表就地逆置算法用c语言描述的,数据结构课后习题之一
  • void reverse(sqList s,int length)//传入一个线性表,length该的长度 { int temp; for(int i=0;i<length/2;i++)//只扫描的前半部分 { temp=s[i]; int s[i]=s[length-1-i]; s[length-i-1]=s[i

    思路: 此种算法较为经典,可扫描该线性表的前半部分,然后把前半部分的每一个元素和后半部分进行交换。具体算法如下:

    void reverse(sqList &s,int length)//传入一个线性表,length该表的长度
    {
        int temp;
        for(int i=0;i<length/2;i++)//只扫描表的前半部分
        {
            temp=s.data[i];
            int s.data[i]=s.data[length-1-i];
            s.data[length-i-1]=s.data[i];
        }
    }
    
    展开全文
  • 线性表的顺序存储结构和链式存储结构的基本操作的实现。将顺序表实现逆置
  • 顺序表就地逆置

    2019-03-26 13:15:10
    数据结构中的顺序表就地逆置源代码,亲测可用。
  • 实现对顺序表逆置

    2018-03-28 14:54:45
    实现对顺序表逆置,在大学的数据结构课上这是很多人第一次实验的第一道题,希望这份代码可以帮助到大家,希望大家有心的更好的思路也多分享分享。
  • #include<iostream> #include<malloc.h> #define OK 1 #define ERROR 0 #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define ElemType int using namespace std;...typedef...
    #include<iostream>
    #include<malloc.h>
    #define OK 1
    #define ERROR 0
    #define LIST_INIT_SIZE 100
    #define LISTINCREMENT 10
    #define ElemType int
    using namespace std;
    typedef int Status;
    typedef struct
    {
        int *elem;
        int length;
        int listsize;
    }SqList;
    
    Status InitList_Sq(SqList &L,int n)//初始化函数
    {
      L.elem = (ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
      if (!L.elem) return ERROR;// 存储分配失败
      L.listsize = LIST_INIT_SIZE;
      for(int i=0;i<=n-1;i++)   cin>>L.elem[i];
      L.length = n;
      return OK;
    }
    
    Status sort(SqList &L,int n)//倒序函数
    {
      int i,j,k;
      for(i=0;i<=(n-1)/2;i++)
      {
          k=L.elem[i];
          L.elem[i]=L.elem[n-i-1];
          L.elem[n-i-1]=k;;
      }
      return OK;
    }
    
    
    int main()
    {
        int i,j,k,n,m;
        SqList x;
        cin>>n;
        if(InitList_Sq(x,n))
        {
            cout<<"The List is:";
            for(i=0;i<=n-1;i++) cout<<x.elem[i]<<' ';
            cout<<endl;
        }
    
        if(sort(x,n))
        {
            cout<<"The turned List is:";
            for(i=0;i<=n-1;i++) cout<<x.elem[i]<<' ';
            cout<<endl;
        }
    return 0;
    }
    
    
    展开全文
  • 数据结构算法每日一练(四)顺序表逆置; (1)设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1); (2)已知在一维数组A[m + n]中依次存放两个线性表(a1, a2, a3,...,am)和(b1, b2, b3,...,bn)。...

    数据结构算法每日一练(四)顺序表逆置

    题目1: 设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)

    算法思想: 扫描顺序表L的前半部分元素,对于元素L.data[i] (0 ≤ i < L.length / 2),将其与下半部分的对应元素L.data[L.length - i - 1]进行交换。

    void Reverse(SqList &L) {
        for (int i = 0; i < L.length / 2; i++) {
            swap(L.data[i], L.data[L.length - i - 1]); //交换数值
        }
    }
    

    题目2: 已知在一维数组A[m + n]中依次存放两个线性表 ( a 1 , a 2 , a 3 , . . . , a m ) (a_1, a_2, a_3,...,a_m) (a1,a2,a3,...,am) ( b 1 , b 2 , b 3 , . . . , b n ) (b_1, b_2, b_3,...,b_n) (b1,b2,b3,...,bn)。试编写一个函数,将数组中两个顺序表的位置互换,即将 ( b 1 , b 2 , b 3 , . . . , b n ) (b_1, b_2, b_3,...,b_n) (b1,b2,b3,...,bn)放在 ( a 1 , a 2 , a 3 , . . . , a m ) (a_1, a_2, a_3,...,a_m) (a1,a2,a3,...,am)的前面。

    算法思想: 先总表逆置,然后再对前n个元素和后m个元素分别逆置。或者先对前n个元素和后m个元素分别逆置,再总表逆置。

    例 [(1,2,3)(4,5,6,7)] -> [(7,6,5,4)(3,2,1)] -> [4,5,6,7,1,2,3]

    void Reverse(int arr[], int left, int right, int len) {
        if (left >= right || right >= len) {
            return;
        }
        int mid = (right - left) / 2;
        for (int i = left; i < mid; i++) {
            swap(arr[i], arr[right- i - 1]);
        }
    }
    
    void Exchange(int A[], int m, int n, int length) {
        Reverse(A, 0, m + n - 1, length);  //总表逆置
        Reverse(A, 0, n - 1, length);  //前n个元素逆置
        Reverse(A, n, m + n - 1, length);  //后m个元素逆置
    }
    
    展开全文
  • 文章目录顺序表逆置将循序表L中的所有元素逆置将两个顺序表的位置互换删除操作删除顺序表L中所有值为x的数据元素删除有序顺序表L中所有值重复的元素合并操作将两个有序顺序表合并成一个新的有序顺序表查找操作找两个...
  • 数据结构和算法的作业,顺序表逆置,绝对可以用,是用文件输入输出,要先建一个input.txt文档,在里面输入数据,最后生成output.txt文档就是排序后的顺序表
  • 实现顺序表逆置,在原数组上操作

    千次阅读 2018-08-28 16:43:49
    //C++ file #include &lt;stdlib.h&gt; using namespace std; int main(int argc, char const *argv[]) { int x[5] = {1, 2, 3, 4, 5}; int len = sizeof(x); for (int i = 0;... ...
  • 数据结构,顺序表元素逆置算法,C++实现,算法复杂度为n/2
  • 问题描述:设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)。 算法基本设计思想: 扫描顺序表L中的前半部分元素,对于元素L.data[i](0<=i<L.length/2),将其与后半部分的对应元素L...
  • 顺序表逆置 两两交换分别是首尾交换一次和中间两个数交换一次 所以这种逆置方法的交换次数是总长度的一半n/2; void nizhi(sqlist *L) { int i,t; for(i = 0;i <= L->length-3;i++) { t = L->data[i]; ...
  • 顺序表逆置,链表逆置

    千次阅读 2020-01-24 11:23:39
    顺序表逆置真题: 1.将一长度为n的数组的前端k(k<n)}个元素逆置后移动到数组后端,要求原数组中数据不丢失; 2.将一长度为n的数组的前端k(k<n)个元素保持原序移动到数组后端,要求原数组中数据不丢失; 3.将...
  • 今天看到一到有意思的题 虽然和题意不大对(因为要位置变换,我这种想法不算真正的位置变换)但是感觉很有意思。 #pragma once #define MAXSIZE 50 #include<string.h> template <...
  • 顺序表逆置算法: 1.二分法 void Invert(Seqlist *L) { ElemType temp; int i; for(i=0;i<L->n/2;i++) { temp = L->element[i]; L->element[i] = L->element[L->n -n -1]; L->...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,091
精华内容 2,436
关键字:

顺序表逆置