0
点赞
收藏
分享

微信扫一扫

数据结构 - >单链表

我是小瘦子哟 2022-01-17 阅读 57

目录

 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。

单链表也是线性表的一种。

先上定义

链表的初始化

输出所有链表节点

出栈

查找


单链表也是线性表的一种。

画个图大家大家理解一下:

 自己画的,有点丑。

那么咱可以知道一个节点包括两个域:其中储存数据元素信息的域称为“数据域”,也就是图中的date;存储直接后继存储位置的域称为“指针域”,也就是图中的next。

#define Size 1//用于控制分配节点大小
typedef int Em;
typedef struct Linklist
{
Em date = NULL;
struct Linklist* next;//定义一个指向Linklist类的指针
}Linklist;
typedef Linklist *linklist;
linklist initlink()//带表头指针
{
linklist head = (linklist)malloc(Size * sizeof(Linklist));
head->next = NULL;
return head;
}
linklist Lk_push(linklist& head, Em x)//表头插入
{
linklist p = (linklist)malloc(Size * sizeof(Linklist));//给节点分配内存
if (p != NULL)//如果节点不为空
{
p->next = head->next;
head->next = p;
p->date = x;
return head;
}
cout << "ERROR:内存分配失败" << endl;
exit(0);
}
void Lk_outall(linklist& head)//输出所有节点
{
linklist p = head->next;
while (p!= NULL)
{
cout << p->date << " ";
p = p->next;
}
cout << endl;
}
linklist Lk_dele(linklist& head, Em x)//删除该节点
{
linklist p = head;
linklist q = head->next;
while (q != NULL)
{
if (q->date == x)
{
p->next = q->next;
free(q);//释放q点的内存
return head;
}
p = p->next;
q = q->next;
return head;
}
}
linklist Lk_found(linklist& head, Em x)
{
linklist p = head->next;
while (p != NULL)
{
if (p->date == x)
{
cout << "存在" << endl;
}
return head;
}
cout << "不存在" << endl;
system("pause");
return head;
}

本人小白一个,内容有瑕疵,欢迎大神投稿

举报

相关推荐

0 条评论