【数据结构】.长度为n的顺序表L,编写一个时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的数据元素

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
#define Maxsize 100
typedef struct{
    
    
	int data[Maxsize];
	int Length;
}SqList;
bool delete_x(SqList &L, int x)
{
    
    
	int i = 0, k = 0;
	while (i<L.Length){
    
    
		if (L.data[i] == x)
			k++;
		else
			L.data[i - k] = L.data[i];
		i++;
	}
	L.Length = L.Length - k;
	return true;
}
 
int main()
{
    
    
	SqList li;
	cout << "输入数组长度:";
	cin >> li.Length;
	cout << "-----输入数组--------" << endl;
	for (int i = 0; i<li.Length; i++)
		cin >> li.data[i];
	delete_x(li, 3);
	for (int i = 0; i<li.Length; i++)
		cout << li.data[i] << " ";
	cout << endl;
}

猜你喜欢

转载自blog.csdn.net/weixin_43762735/article/details/108630847
今日推荐