数据结构顺序表删除所有特定元素x

顺序表类定义:

 1 template<class T>
 2 class SeqList :
 3 {
 4 public:
 5     SeqList(int mSize);
 6     ~SeqList()
 7     {
 8         delete[] elements;
 9     }
10     bool SM_Delete(T x);
11 private:
12     int maxLength;
13     T *elements;
14 };
15 template <class T>
16 SeqList<T>::SeqList(int mSize)
17 {
18     maxLength = mSize;
19     elements = new T[maxLength];
20     n = 0;
21 }

删除所有特定元素x成员函数:

 1 /*这里提供两种方式,其中一种为了方便测试,作为注释附带*/
 2 template <class T>
 3 bool SeqList<T>::SM_Delete(T x)
 4 {
 5
 6     for (int i = 0; i < n; i++)
 7     {
 8         if (elements[i] == x)
 9             /*
10         for (int j = i+1; j < n; j++)
11         {
12         elements[j-1 ] = elements[j];
13         }
14         n--;
15         */
16         Delete(i);
17     }
18     return true;
19     /*
20     for (int i = 0; i < n;i++)
21     Delete(Search(x));
22     return true;
23     */
24 }
时间: 2024-10-13 10:48:33

数据结构顺序表删除所有特定元素x的相关文章

数据结构-链表实现删除全部特定元素x

链表节点类定义: 1 template <class T> 2 class SingleList; 3 template <class T> 4 class Node 5 { 6 private: 7 T element; 8 Node<T> *link; 9 friend class SingleList<T>; 10 }; 链表类定义: 1 template <class T> 2 class SingleList :public Linea

hrbust-1545-基础数据结构——顺序表(2)

http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1545 基础数据结构——顺序表(2) Time Limit: 1000 MS Memory Limit: 10240 K Total Submit: 412(165 users) Total Accepted: 188(150 users) Rating:  Special Judge: No Description 在长度为n(n<10

数据结构顺序表思想以及完整代码实现

本文转载自趣学算法,方便个人学习参考使用 http://blog.csdn.net/rainchxy/article/details/77946835 数据结构 第3讲 顺序表 顺序表是最简单的一种线性结构,逻辑上相邻的数据在计算机内的存储位置也是相邻的,可以快速定位第几个元素,中间不允许有空,所以插入.删除时需要移动大量元素. 顺序表可以分配一段连续的存储空间Maxsize,用elem记录基地址,用length记录实际的元素个数,即顺序表的长度, 结构体的定义: 结构体定义后,如果要定义个顺序

c数据结构 顺序表和链表 相关操作

编译器:vs2013 内容: #include "stdafx.h"#include<stdio.h>#include<malloc.h>#include<stdlib.h> #define LINK_INIT_SIZE 100#define LISTINCREAMENT 10#define ElemType int#define OVERFLOW -2#define OK 1#define ERROR 0 typedef int status; /

线性表&gt;&gt;顺序表---&gt;逆置所有元素

1 /*顺序表中所有的元素逆置 2 * 3 */ 4 #include <iostream.h> 5 using namespace std; 6 7 int main(){ 8 void reverse_arr(int arr[],int n); 9 int a[]={0,1,2,3,4,5,6,7}; 10 int n=7; 11 reverse_arr(a,n); 12 for(int i=0;i<=n;i++){ 13 cout << a[i] << &q

顺序表应用3:元素位置互换之移位算法

一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),借助元素移位的方式,设计一个空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段. 注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分. 输入 第一行输入整数n,代表下面有n行输入: 之后输入n行,每行先

SDUT 3327 顺序表应用4:元素位置互换之逆置算法

顺序表应用4:元素位置互换之逆置算法 Time Limit: 10 ms Memory Limit: 570 KiB Problem Description 一个长度为len(1<=len<=1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<=m<=len),设计一个时间复杂度为O(N).空间复杂度为O(1)的算法,改变原来的顺序表,把顺序表中原来在前的m个元素放到表的后段,后len-m个元素放到表的前段.注意:先将顺序

数据结构顺序表的操作全集(创建,遍历,插入,删除,排序等等)

#include"stdio.h" #include"stdlib.h" #include"malloc.h" #define list_size 100 typedef struct Node { int data[list_size]; int len; }NODE,* PNODE; void creat_list(PNODE L) { int i; int val; int len; /* PNODE L=(PNODE)malloc(siz

数据结构-顺序表插入元素时扩容问题

本程序是双倍扩容 顺序表类定义: 1 template<class T> 2 class SeqList :public Linearlist<T> 3 { 4 public: 5 SeqList(int mSize); 6 ~SeqList() 7 { 8 delete[] elements; 9 } 10 bool Insert(int i, T x); 11 private: 12 int maxLength; 13 T *elements; 14 }; 15 16 temp