![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构学习
文章平均质量分 70
autu
golang
展开
-
单向循环链表的简单实现--数据结构学习(二)
单向循环链表与单链表类似,不同之处在于:单链表尾指针为NULL,单向循环链表尾指针指向头结点。当需要判断链表是否结束时,单链表的判断方法是判断尾指针是否为空,单向循环链表则是判断尾指针是否指向头结点。以下是单向循环链表的简单实现和输出。#includeusing namespace std;struct node{int data;node *next;};no原创 2015-08-01 22:23:55 · 629 阅读 · 0 评论 -
单链表的实现---数据结构学习(一)
线性表的链式存储结构即为单链表,单链表可方便的进行插入、删除,但不具备随机存储的特点。具体的实现如下:(包括初始化,插入,删除,输出和求链表长度)#includeusing namespace std;int getlen();struct node{int data;node *next;};node *head;void init(){nod原创 2015-08-01 22:18:15 · 345 阅读 · 0 评论 -
双向链表的实现---数据结构学习(三)
在单链表中,每个节点只有一个指针指向它的直接后继,访问数据时只能沿着指针向前访问。若要访问某一节点的前驱节点,只能从头开始访问。为解决这一问题而引出了双向链表的概念。双向链表中的每个节点包含两个指针(prior和next)分别指向它的前驱和后继,从一个节点出发既可以访问它的后继节点,也可访问它的前驱节点。可大大节省访问前驱节点的时间。本文主要实现双向链表的初始化、插入、删除和输出操作。实现原创 2015-08-02 19:25:33 · 698 阅读 · 0 评论 -
双向链表的实现---数据结构学习(三)
双向链表的每个节点包含两个指针(prior和next),分别指向该节点的直接前驱和后继。双向链表可方便的实现对一个节点前驱节点的访问。本文简单实现了双向链表的初始化、插入、删除和输出操作,具体实现方法如下:#includeusing namespace std;struct node{int data;node *prior;node *next;};nod原创 2015-08-02 21:10:16 · 347 阅读 · 0 评论 -
队列的实现---数据结构学习(五)
队列是一种特殊的链式存储结构,具有“先进先出”的特点,对队列进行操作,只能在队列的尾部(rear)进行插入操作,在队列的头部(front)进行删除。判断队列是否为空的条件是rear=front。生活中队列思想的应用广泛存在,例如排队等待服务,数据处理等。下面,将简单实现队列的初始化、插入删除以及输出队列元素的操作。实现代码如下。#includeusing namespace std;原创 2015-08-04 22:18:45 · 463 阅读 · 0 评论 -
栈的实现--数据结构学习(四)
栈是一种特殊的链表,具有“先进后出”、“后进先出”的特点,它的插入和删除操作只能在栈的顶部进行。生活中的很多场景具有这种特点,例如火车的调度,碗的叠垒等。利用栈可完美解决这一类问题。本文简单实现了栈的初始化、插入、删除、输出操作,代码如下。#include#include#includeusing namespace std;struct stacks{int da原创 2015-08-04 16:19:36 · 300 阅读 · 0 评论 -
快速排序的实现---数据结构学习(六)
快速排序(QuickSort)是对起泡排序的一种改进。它的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。实现方法如下:#includeusing namespace std;void sort(int a[], int i, int j){if (i原创 2015-08-20 10:14:57 · 1143 阅读 · 0 评论