21xrx.com
2024-12-22 21:22:35 Sunday
登录
文章检索 我的文章 写文章
C++代码实现数据结构
2023-07-10 22:35:15 深夜i     --     --
C++ 数据结构 实现 代码 算法

C++是一种高效、快速、优雅的编程语言,也是一种被广泛使用的面向对象编程语言,它在数据结构的实现方面得到了广泛的应用。在C++中,数据结构通常是由类或结构体表示的。下面将介绍一些常见的数据结构及其C++代码的实现。

1.数组(Array)

数组是一种最基本的数据结构,在C++中的实现方式非常简单,它可以用以下代码表示:


int arr[10]; // 定义一个长度为10的整型数组

2.链表(Linked List)

链表是一种由节点组成的数据结构,每个节点包含指向下一个节点的指针。链表有单向链表、双向链表和循环链表等不同类型。下面是C++中单向链表的实现:


class ListNode {

public:

  int val;

  ListNode* next;

  ListNode(int x) : val(x), next(NULL) {}

};

class LinkedList {

public:

  LinkedList()

    head = NULL;

  

  void addNode(int val) {

    ListNode* node = new ListNode(val);

    if (head == NULL)

      head = node;

     else {

      ListNode* p = head;

      while (p->next)

        p = p->next;

      

      p->next = node;

    }

  }

  void deleteNode(int val) {

    if (head == NULL) return;

    if (head->val == val)

      head = head->next;

      return;

    

    ListNode* p = head;

    while (p->next && p->next->val != val)

      p = p->next;

    

    if (p->next)

      p->next = p->next->next;

    

  }

private:

  ListNode* head;

};

3.栈(Stack)

栈是一种后进先出的数据结构,它可以用数组或链表实现。下面是栈的实现代码:


class Stack {

public:

  Stack()

    top = -1;

  

  void push(int val) {

    a[++ top] = val;

  }

  void pop() {

    if (top >= 0) top --;

  }

  int getTop() {

    if (top >= 0) {

      return a[top];

    }

  }

  bool isEmpty()

    return top == -1;

  

private:

  int a[10010];

  int top;

};

4.队列(Queue)

队列是一种先进先出的数据结构,它也可以用数组或链表实现。下面是队列的实现代码:


class Queue {

public:

  Queue()

    head = tail = 0;

  

  void push(int val) {

    a[tail ++] = val;

  }

  void pop() {

    if (head < tail) head ++;

  }

  int getFront() {

    if (head < tail) {

      return a[head];

    }

  }

  bool isEmpty()

    return head == tail;

  

private:

  int a[10010];

  int head, tail;

};

以上是一些常见的数据结构在C++中的实现,除了上述四种数据结构之外,C++还支持许多其他类型的数据结构,例如树、图、哈希表、堆等等,它们都有各自的实现方式和应用场景。通过学习和实践,我们可以更好地理解和运用各类数据结构,提高自己的编程能力和效率。

  
  

评论区

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