博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
指针版 单链表复习
阅读量:6721 次
发布时间:2019-06-25

本文共 1931 字,大约阅读时间需要 6 分钟。

#include 
#define P pair
using namespace std;typedef long long LL;typedef struct LNode{ int data; struct LNode *nxt;}LNode,*LinkList;bool Linklist_init(LinkList &root){ root = new LNode; ///分配头结点,指针域为空,下一个结点才是第一个结点 root->nxt = NULL; return true;}/**查找链表中第k个元素(k下标从1开始)*/int Find_by_location(LinkList root,int k){ LinkList now = root->nxt; if(!k) return -1; int cnt = 1; while(now && cnt < k){ now = now->nxt,cnt++; } if(!now) return -1;///第k个元素不存在 return now->data;}int Find_by_value(LinkList root,int value){ LinkList now = root->nxt; while(now && now->data != value) now = now->nxt; if(now) return 1;///找到了 return -1;///找不到}/**头插法*/bool Insert(LinkList &root,int value){ LinkList now = new LNode; now->data = value; now->nxt = root->nxt; root->nxt = now; return true;}/**在第pos - 1 和 第pos个元素之间插入数据*/bool Insert_by_location(LinkList root,int pos,int value){ if(!pos) return false; int cnt = 0; while(root && cnt < pos -1){ cnt++,root = root->nxt; } if(!root) return false; LinkList now = new LNode; now->data = value; now->nxt = root->nxt; root->nxt = now; return true;}/**删除第pos个元素*/bool Delete_by_location(LinkList root,int pos){ if(!pos) return false; int cnt = 0; while(cnt < pos - 1) cnt++,root = root->nxt; if(!root) return false; LinkList tmp = root->nxt; root->nxt = tmp->nxt; delete tmp; tmp = NULL; return true;}void rep_print(LinkList root){ root = root->nxt; for(;root;root = root->nxt) printf("%d ",root->data); printf("\n");}int main(void){ LinkList root; Linklist_init(root); for(int i = 1;i <= 10;i++) Insert(root,i); rep_print(root); Insert_by_location(root,3,15); Insert_by_location(root,4,16); rep_print(root); Delete_by_location(root,5); rep_print(root); return 0;}

转载于:https://www.cnblogs.com/jiachinzhao/p/7533063.html

你可能感兴趣的文章
get/post时中文乱码问题的解决办法
查看>>
【Tarjan,LCA】【3-21个人赛】【problemD】
查看>>
Shiro_DelegatingFilterProxy
查看>>
JasperStarter 1.0.1 发布
查看>>
Python实现Singleton模式的几种方式
查看>>
【 Mysql 】 2进制安装和简单优化
查看>>
对于字典类型的后台传输
查看>>
jquery判断表单提交是否为空
查看>>
JavaScript 2(转)
查看>>
数据结构【图】—023邻接表深度和广度遍历
查看>>
Android基于box2d开发弹弓类游戏[一]-------------前期准备&创建项目
查看>>
07使用Maven构建多模块项目(一)
查看>>
jsp指令
查看>>
【CSS】之选择器性能和规范
查看>>
如何在程序中使用官方汉化文件
查看>>
C#笔记
查看>>
数据库增删改查最简单练习
查看>>
马走日 题解
查看>>
卷积神经网络CNN的意义
查看>>
webstorm验证码
查看>>