面试-数据结构(一:链表,栈,队列)

一:链表:

1:定义:

        链表是一种动态的数据结构,可以用来表示顺序访问的线性群体,链表是由一系列节点组成的,节点可以在运行中动态生成,每一个节点包括数据域和指向链表中下一个节点的指针,指针是维系节点的纽带,节点中可以有不止一个用于连接其它节点的指针。

2:分类

      单链表:链表中每个节点只有一个指向后继节点的指针。

       双向链表:每个节点中有两个用于连接其它节点的指针,一个指向前趋节点,一个指向后继节点。

3:通常只要知道链表首地址,则可以遍历整个链表。由于链表节点是在堆区动态申请的,其地址并不是连续的,因此无法进行随机访问,只有通过前一节点的next指针才能定位下一节点的地址。单链表只能向后遍历,无法逆序遍历,因此诞生了使用更广泛的双链表,即节点内部增加一个字段*prev,用以存储该节点的前一个节点地址。双链表可以双向遍历,但仍然只能顺序访问,无法像数组那样随机访问。

4:操作:链表最重要的就是插入删除操作:

向空链表插入,向链表头插入,向链表尾插入

删除位置不合理,删除第一个元素,删除重复元素,查找倒数第K个元素,链表反转,输出,中间节点,




 二栈

1:定义:栈是只能从一端访问的线性群体。(吃多了会吐)

三:队列

1:定义:只能在一端(队尾)删除元素(出队),在另一端(队头)插入元素(入队)。(吃多了会拉)

队列即按照数据到达的顺序进行排队,每次新插入一个节点,将其插到队尾;每次只有对头才能出队列。简言之,对于数据元素的到达顺序,做到“先进先出”。

https://www.cnblogs.com/hedeyong/p/7841548.html点击打开链接

https://www.cnblogs.com/tpys/p/3568528.html点击打开链接


猜你喜欢

转载自blog.csdn.net/lettyisme/article/details/80877066
今日推荐