![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
考研_数据结构
GLOW444
这个作者很懒,什么都没留下…
展开
-
数据结构-链表大题3
设L为带头结点的单链表,编写算法实现从尾到头反向输出每个结点的值。 void print(LinkList &L){ if(L->next!=NULL){ print(L->next); } if(L!=NULL){ cout<<L->data; } } 试着编写在带头结点的单链表L中删除一个最小值结点的高效算法 试编写算法将带头结点的单链表就地逆置,所谓“就地”是指辅助空间复杂度为O(1) ...原创 2021-07-25 20:47:00 · 255 阅读 · 0 评论 -
数据结构-链表大题2
在带头结点的单链表L中,删除所有结点为x的结点,并释放其空间,假设值为x的结点不唯一。 void Del_x(LinkList &L,Elemtype x){ Node*p=L->next;//从第一个结点开始往后查找; Node*pre=L;//p的前驱 Node*q;//暂存要删除的点 while(p!=NULL){ if(p->data==x){ q=p;//q指向p p=p->next;//p指向q后面的结点 pre->next=p;//原创 2021-07-24 22:40:03 · 190 阅读 · 1 评论 -
数据结构-链表大题1
1.设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点 //定义单链表 typedef struct Node{ int data;//数据域 struct Node* next;//指针域 }Node,*LinkList;//声明点 声明链表 //得到位序为i的结点 Node *GetElem(LinkList L,int i){ if(i<1)//异常值 return NULL; Node *p=L; j=1;//不带头结点 while(p!=NULL&&原创 2021-07-24 20:15:23 · 142 阅读 · 1 评论 -
数据结构-顺序表vs链表
一个数据结构关注的三个 问题 逻辑结构 线性结构 物理结构 顺序表:随机存取 存储密度高 改变容量不方便 链表:分配方便 数据的运算/基本操作。创 消 增 删 查 改(赋值)原创 2021-07-23 22:57:39 · 73 阅读 · 0 评论 -
数据结构—静态链表
用代码定义一个静态链表 #define MaxSize 10 typedef struct Node{ ElemType data; int next; }Node;//SLinkList[MaxSize]; Node a[MaxSize];//数组a作为静态链表//SLinkList a; 初始化:a[0].next=-1; 插入位序为i的结点 [notice]这个代码是自己写的,不一定对哦。没有验证 为了防止脏数据,其他暂时没有数据的next暂存为-2 bool SListNextNode(SL原创 2021-07-23 22:47:08 · 47 阅读 · 0 评论 -
数据结构-循环链表
循环单链表 区别单链表 表尾结点的next指针指向头结点 初始化:L->next=L 判空 判断表尾结点 可以找到p的前驱结点 循环双链表 实现双循环 双循环 可以不用判断是否是最后一个结点了 支持正版课: ...原创 2021-07-23 21:28:33 · 71 阅读 · 0 评论 -
数据结构-双链表
双链表的初始化 typedef struct DNode{ ElemType data; struct DNode *prior,*next; }DNode,*DLinkList; bool InitDLinkList(DLinkList &L){ L = (DLinkList)malloc(sizeof(DNode)); if(L==NULL) return false; L->prior=NULL; L->next=NULL; return true; } 双原创 2021-07-23 21:09:31 · 97 阅读 · 0 评论