数据结构学习---线性表链表实现
来源:互联网 发布:淘宝韩版女装图片 编辑:程序博客网 时间:2024/04/27 23:31
链表的实现(简易版)
首先是结构体
typedef int ElementType; //为了便于修改链表中元素的类型typedef struct Node{ElementType Date;struct Node* Next;}List;List L,*Ptrl;
求链表长度的函数
int length(List *Ptrl){List* p =Ptrl;int j=0;while(p){p=p->Next;j++;}return j;}
通过位置查找
List* FindKth(int k,List *Ptrl){List *p=Ptrl;int i=0;while(p!=NULL && i<k){ p=p->Next;i++;}if(i == k) return p;else return NULL;}
通过值查找
List* Find(ElementType X ,List* Ptrl){List* p =Ptrl;while(p!=NULL && p->Date!=X){p=p->Next;}return p;}
插入
/*构造节点,找到i-1个节点,插入节点*/List* Insert(ElementType X,int i ,List* Ptrl){ List* s, * p; if(i==1){ s=(List*)malloc(sizeof(List)); s->Date = X; s->Next = Ptrl; return s; } p = FindKth(i-1,Ptrl); if(p== NULL){ cout<<"参数错"<<endl; return NULL; } else{ s=(List*)malloc(sizeof(List)); s->Date = X; s->Next = p->Next;//位置不能颠倒 p->Next = s; return Ptrl; }}
删除
List* Delete(int i,List* Ptrl){List *p, *s;if(i==1){ //删除头结点s=Ptrl;if(Ptrl!=NULL)Ptrl=Ptrl->Next;else return NULL;free(s); //不要忘了释放空间return Ptrl;}p = FindKth(i-1,Ptrl);if(p== NULL){printf("第%d个节点不存在",i-1); return NULL;}else if(p->Next == NULL){printf("第%d个节点不存在",i); return NULL;}else{s=p->Next;//用新创建的指针指向要删除的p->Next = s->Next; free(s);return Ptrl;}}
【测试的主函数】
int main(){List* p=(List*)malloc(sizeof(List));p->Next = NULL;p->Date=2;p=Insert(5,1,p);p=Insert(3,2,p);p=Insert(5,2,p);cout<<"长度为: "<<length(p)<<endl;List* po = FindKth(2,p);if(po==NULL)cout<<"不存在"<<endl;else{cout<<po->Date<<endl;}p=Delete(2,p);po = FindKth(2,p);if(po==NULL)cout<<"不存在"<<endl;else{cout<<po->Date<<endl;}return 0;}
1 0
- 数据结构学习---线性表链表实现
- 数据结构---线性表链式实现
- 线性表链表实现
- 基础数据结构--线性表链式实现
- 数据结构第二章--线性表链表
- 线性表链接实现--双循环链表
- 线性表链式实现
- 线性表链式实现
- 线性表链式 实现
- 学习笔记------数据结构(C语言版) 线性表链式存储
- 数据结构-线性表链式表示
- 线性表链表
- 线性表链表
- 线性表链式存储实现
- 线性表链式存储结构实现--静态链表
- 线性表链式存储结构实现 --单向循环链表
- 线性表链式存储结构实现 --双向循环链表
- 数据结构之线性表链式存储
- 最简单简洁高效的Json数据解析
- Android WebView加载html文本时,图片太大不能适配屏幕
- 9.7数学与概率(六)——检查一个数是否为素数
- android_Color.RGB 颜色之间渐变基本算法
- bs4 的一个报错
- 数据结构学习---线性表链表实现
- 9.7数学与概率(七)——检查n能否被素数整除
- dfs寻路算法---迷宫问题实现
- uva11020 Efficient Solutions(STL multiset的应用+二分查找函数)
- Android自定义控件—-RadioGroup实现APP首页底部Tab的切换
- curl命令详解
- day07-tomcat
- 类加载器
- Codeforces567F. Mausoleum(DP)