21xrx.com
2024-12-27 20:15:59 Friday
登录
文章检索 我的文章 写文章
C++线性表头文件编写
2023-07-09 18:09:19 深夜i     --     --
C++ 线性表 头文件 编写 数据结构

C++线性表是一种数据结构,它可以用来存储一组相同类型的数据,这些数据可以按照某种顺序排列。在C++中,我们可以使用头文件来编写线性表,并实现一些常见操作,比如插入、删除、查找和遍历等。下面是一个简单的C++线性表头文件编写的示例。

1. 定义头文件

首先,我们需要定义一个头文件,这个头文件包含了我们所要使用的所有函数和变量。在本例中,我们可以将其命名为“List.h”。


#ifndef LIST_H_INCLUDED

#define LIST_H_INCLUDED

//定义结构体ListNode

struct ListNode

{

  int val;

  ListNode* next;

};

//定义类List

class List

{

public:

  List();

  ~List();

  void insert(int x);

  void remove(int x);

  bool search(int x);

  void traverse();

private:

  ListNode* head;

};

#endif // LIST_H_INCLUDED

2. 实现插入、删除和查找操作

接下来,我们需要实现插入、删除和查找函数。这些函数都是在类中定义的,并且实现了List类的私有成员函数。


//在头文件中定义的函数实现

#include "List.h"

List::List()

  head = new ListNode;

  head->val = 0;

  head->next = NULL;

List::~List()

{

  ListNode* p = head;

  while (p != NULL)

  {

    ListNode* q = p->next;

    delete p;

    p = q;

  }

}

void List::insert(int x)

{

  ListNode* p = head;

  while (p->next != NULL)

  

    p = p->next;

  

  p->next = new ListNode;

  p->next->val = x;

  p->next->next = NULL;

}

void List::remove(int x)

{

  ListNode* p = head;

  while (p->next != NULL)

  {

    if (p->next->val == x)

    {

      ListNode* q = p->next;

      p->next = q->next;

      delete q;

      return;

    }

    p = p->next;

  }

}

bool List::search(int x)

{

  ListNode* p = head;

  while (p->next != NULL)

  {

    if (p->next->val == x)

    

      return true;

    

    p = p->next;

  }

  return false;

}

3. 实现遍历函数

最后,我们需要实现一个遍历函数来输出线性表中的所有元素。这个函数也是在类中定义的,并且也是List类的私有成员函数。


void List::traverse()

{

  ListNode* p = head->next;

  while (p != NULL)

  

    cout << p->val << " ";

    p = p->next;

  

  cout << endl;

}

4. 使用头文件

现在,我们已经编写了一个C++线性表头文件,并实现了插入、删除、查找和遍历等函数。我们可以在其他程序中包含这个头文件,并使用其中的函数来操作线性表。


#include "List.h"

int main()

{

  List mylist;

  mylist.insert(3);

  mylist.insert(5);

  mylist.insert(7);

  mylist.remove(5);

  mylist.traverse();

  if (mylist.search(7))

  

    cout << "7 is in the list" << endl;

  

  else

  

    cout << "7 is not in the list" << endl;

  

  return 0;

}

在这个示例程序中,我们首先创建了一个名为“mylist”的List对象,并在其中添加了三个元素。然后,我们移除了第二个元素,并使用遍历函数输出了新的线性表。最后,我们使用查找函数搜索元素“7”,并输出相应的结果。

总之,使用C++线性表头文件可以帮助我们更方便、高效地实现数据结构操作,提高代码的可读性和可维护性。以上就是一个简单的C++线性表头文件编写的示例,希望对初学者有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复