链表
文章平均质量分 56
DREAMonce_
这个作者很懒,什么都没留下…
展开
-
C语言静态顺序表的实现
#include<stdio.h>#ifndef __SEQ_LIST__#define __SEQ_LIST__#define MIX_SIZE 5typedef int DataType;typedef struct SeqList{ DataType seqList[MIX_SIZE]; size_t size;}SeqList;void InitSeqList(SeqL原创 2017-04-13 15:18:24 · 403 阅读 · 0 评论 -
C语言动态顺序表的实现
1、用于存放声明的头文件#pragma once //避免重复引入头文件,作用于预编译指令几乎相同#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <assert.h>#include <malloc.h>typedef int DataType;typedef struct SepList_d{ DataTy原创 2017-04-13 15:11:57 · 380 阅读 · 0 评论 -
无头单链表的非尾节点删除
删除一个无头单链表的非尾节点 分析:例如链表1->2->3->4如果要删除节点3,则将节点4前移,再删除节点3void EraseNon Tail(ListNode* pos){ assert (pos&& pos->next); ListNode* next=pos->next; pos->data=next->data; pos->data=next->next; fr原创 2017-06-15 20:39:47 · 453 阅读 · 0 评论 -
比较顺序表和链表的优缺点
线性表分为顺序表和链表,链表又分为单链表,双向链表和循环链表。对于链表的结构又分为带头链表和不带头链表。 一,顺序表 定义:将表中元素一个接一个的存入一组连续的存储单元中,这种存储结构是顺序结构。采用顺序存储结构的线性表简称为“ 顺序表”。 特点:1.存储空间连续,即允许元素的随机访问 2.长度固定,必须在分配内存之前确定数组的长原创 2017-06-15 20:19:11 · 6406 阅读 · 0 评论 -
单链表基础题总结分析
1.从尾到头打印单链表 2.在无头单链表的一个节点前插入一个节点 3.单链表实现约瑟夫环 4.逆置/反转单链表 5.单链表排序(冒泡排序&快速排序) 6.合并两个有序链表,合并后依然有序 7.查找单链表的中间节点,要求只能遍历一次链表原创 2017-06-19 22:26:50 · 397 阅读 · 0 评论 -
链表——带环问题
判断单链表是否带环?若带环,求环的长度?求环的入口点?并计算每个算法的时间复杂度&空间复杂度分析:不带环fast指针可以走到尾,带环则走不到;若带环fast指针一次走两步,slow指针一次走一步。(fast和slow的间距会逐渐缩小,一次缩小1,不会错过,其余走法可能会跳过,或者构成死循环);入口点:第二次的相遇点ListNode* IsHaveLoop(ListNode* pli原创 2017-06-23 15:18:39 · 399 阅读 · 0 评论 -
链表—两个链表的相交问题
1.判断两个链表是否相交,若相交,求交点。(假设链表不带环)2.判断两个链表是否相交,若相交,求交点。(假设链表可能带环)【升级版】1.分析:在已知链表不带环时,如果两个链表的尾部相同则相交,用快慢指针求交点。ListNode* GetMeetNode(ListNode* list1,ListNode* list2)//判断相交点{ ListNode* cur1 =原创 2017-06-23 16:29:52 · 423 阅读 · 0 评论 -
链表—复杂链表的复制
复杂链表的复制。一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个random指针指向这个链表中的一个随机节点或者NULL,现在要求实现复制这个链表,返回复制后的新链表。//ps: 复杂链表的结构 struct ComplexNode { int _data ; // 数据 struct ComplexNode * _next; // 指向下一个节点的指针原创 2017-06-24 16:31:53 · 312 阅读 · 0 评论