顺序表的就地逆置(C语言实现)

顺序表的就地逆置(C语言实现),第1张

顺序表的就地逆置(C语言实现) 顺序表的就地逆置(C语言实现)
  1. 题目要求:试写一算法实现顺序表的就地逆置,即利用原表的存储空间将线性表 ( a 1 , a 2 , … , a n ) (a_1,a_2,dots,a_n) (a1​,a2​,…,an​)逆置为 ( a n , a n − 1 , … , a 1 ) (a_n,a_{n-1},dots,a_1) (an​,an−1​,…,a1​)。

  2. 逆置代码

    void ListReverse(SqList *L)
    {
        int i;
        int temp;
        for(i=0;ilength/2;i++)
        {
            temp=L->data[i];
            L->data[i]=L->data[L->length-i-1];
            L->data[L->length-i-1]=temp;                
        }
    }
    
  3. 完整程序

    #include 
    #define MAXSIZE 20
    typedef struct
    {
    	int data[MAXSIZE];  
    	int length;
    }SqList;
    void ListTraverse(SqList L)
    {
    	int i;
        for(i=0;ilength/2;i++)
        {
            temp=L->data[i];
            L->data[i]=L->data[L->length-i-1];
            L->data[L->length-i-1]=temp;                
        }
    }
    int main()
    {
    	SqList L;
    	int a[9]={1,2,3,4,5,6,7,8,9};
    	L.length=9;
    	for(int i=0;i<9;i++)
    	{
    		L.data[i]=a[i];
    	}
    	ListTraverse(L);
    	ListReverse(&L);
    	ListTraverse(L);
    }
    

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5154930.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存