2021-9-18【数据结构/严蔚敏】【单链表】【代码实现算法2.8-2.12】
#include<bits/stdc++.h>using namespace std;#define ElemType int#define Status inttypedef struct LNode{ElemType data;struct LNode *next;}LNode,*LinkList;//算法2.8//获得第i个元素把他赋给eStatus GetElem_L(Link
·
线性表
- 2021-9-14【数据结构/严蔚敏】【顺序表】【代码实现算法2.1-2.7】
- 2021-9-18【数据结构/严蔚敏】【单链表】【代码实现算法2.8-2.12】
- 2021-9-18【数据结构/严蔚敏】【静态链表】【代码实现算法2.13-2.17】
- 2021-9-19【数据结构/严蔚敏】【双向链表】【代码实现算法2.18-2.19】
- 2021-9-19【数据结构/严蔚敏】【带头结点的线性表】【代码实现算法2.20-2.21】
- 2021-9-19【数据结构/严蔚敏】【一元多项式的表示及相加、相减、相乘】【代码实现算法2.22-2.23】
- 2021-9-23【数据结构】【单链表逆置】
- 2021-9-23【数据结构】【顺序表逆置】
栈&队列
- 2021-9-22【数据结构/严蔚敏】【顺序栈&链式栈&迷宫求解&表达式求值】【代码实现算法3.1-3.5】
- 2021-9-27【数据结构/严蔚敏】【链队列】
- 2021-9-28【数据结构/严蔚敏】【循环队列】
串
二叉树
持续更新中,尽请期待!!!
#include<bits/stdc++.h>
using namespace std;
#define ElemType int
#define Status int
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
//算法2.8
//获得第i个元素把他赋给e
Status GetElem_L(LinkList L,int i,ElemType &e){
LinkList p = L->next;
int j = 1;
while(p&&j<i){
p = p->next;
j++;
}
if(!p||j<i)
return 0;
e = p->data;
return 1;
}
//算法2.9
//在i位置之前插入元素e
Status ListInsert_L(LinkList &L,int i,ElemType e){
LinkList p = L;
int j = 0;
while (p && j < i - 1)
{
p = p->next;
j++;
}
if (!p || j > i - 1)
return 0;
LinkList s = (LinkList)malloc(sizeof(LNode));
s->data = e;
s->next = p->next;
p->next = s;
return 1;
}
//算法2.10
//删除第i个元素,由e返回其值
Status ListDelete_L(LinkList &L,int i,ElemType &e){
LinkList p = L;
int j = 0;
while (p->next && j < i - 1)
{
p = p->next;
j++;
}
if (!(p->next) || j > i - 1)
return 0;
LinkList q = p->next;
p->next = q->next;
e = q->data;
free(q);
return 1;
}
//算法2.11
//逆位序输入n个元素的值,建立带表头结点的单链线性表L
void CreateList_L(LinkList &L,int n){
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
ElemType e;
for (int i = n; i > 0;i--){
LinkList p = (LinkList)malloc(sizeof(LNode));
scanf("%d", &e);
p->data = e;
p->next = L->next;
L->next = p;
}
}
//算法2.12
//单链表La,Lb的元素归并到Lc,Lc元素按值非递减排列
void MergeList_L(LinkList &La, LinkList &Lb, LinkList &Lc){
LinkList pa = La->next;
LinkList pb = Lb->next;
LinkList pc;
La = pc = La;
while (pa && pb)
{
if (pa->data <= pb->data)
{
pc->next = pa;
pc = pa;
pa = pa->next;
}
else
{
pc->next = pb;
pc = pb;
pb = pb->next;
}
}
pc->next = pa ? pa : pb;
free(Lb);
La = NULL;
Lb = NULL;
}

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)