目录
- 前言
- 具体实现
-
- 1. 结点类型描述:
- 2. 创建头结点
- 3. 遍历链表
- 4. 头插法(插入1-10)
- 5. 尾插法(插入90-100)
- 6. 按序号查找结点
- 7. 按值查找表结点
前言 线性表的链式存储又称单链表,它是指通过一组任意的存储单元来存储线性表中的数据元素。为了简历数据元素之间的线性关系,对每个链表结点,除存放元素自身的信息外,还需存放一个指向其后继的指针。
其中:data为数据域,存放数据元素;next为指针域,存放其后继结点的地址。
【自学笔记|自学笔记-链式存储的基本操作(慢慢写)】虽说单链表可以解决顺序表需要大量连续存储单元的缺点,但是,其附带的指针域,也存在着浪费储存空间的缺点。
具体实现 1. 结点类型描述:
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
2. 创建头结点
void initHead(LinkList& L){
L = (LinkList)malloc(sizeof(LNode));
L->data = https://www.it610.com/article/0;
//头结点中存放个数
L->next = NULL;
}
3. 遍历链表
void printList(LinkList L){
while(L!=NULL){
printf("%d ",L->data);
L = L->next;
}
printf("\n");
}
4. 头插法(插入1-10)
void headInsert(LinkList L){
LinkList head = L;
LinkList p = NULL;
for(int i=1;
i<=10;
i++){
head->data +=1;
//计数
p = (LinkList)malloc(sizeof(LNode));
p->data = https://www.it610.com/article/i;
p->next = L->next;
L->next = p;
}
}
5. 尾插法(插入90-100)
void tailInsert(LinkList L){
LinkList head = L;
while(L->next!=NULL){
L = L->next;
}
LinkList tail = L;
for(int i=90;
i<=100;
i++){
LinkList tmp = (LinkList)malloc(sizeof(LNode));
tmp->data = https://www.it610.com/article/i;
tail->next = tmp;
tail = tail->next;
head->data++;
}
tail->next = NULL;
}
6. 按序号查找结点
LinkList GetElem(LinkList L,int i){ //按照序号查找值
if(i>L->data){
return NULL;
}
int pos = 1;
//计数
while(pos<=i){
L = L->next;
pos++;
}
return L;
}
7. 按值查找表结点
LinkList LocateElem(LinkList L,int num){ //按值查找表结点
LinkList p = L->next;
while(p!=NULL&&p->data!=num){
p = p->next;
}
return p;
}
推荐阅读
- 实战项目专题|谷粒商城-个人笔记(基础篇二)
- 1024程序员节|暴力匹配算法和KMP算法解决字符串匹配问题
- Linux自学笔记——tcp wrapper
- 腾讯云函数部署网易云音乐刷歌和bilibili签到打卡投币