博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构之线性链表
阅读量:2144 次
发布时间:2019-04-30

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

线性表的链式存储结构的特点就是用一组任意的存储单元存储线性表的数据元素(数据单元之间的关系是可以连续的,也可以是不连续的)。

#include 
#include
#define ERROR 0#define OK 1#define OVERFLOW -2typedef int Status ;typedef int ElemType;typedef struct LNode{ ElemType data; struct LNode* next;}LNode;typedef LNode* LinkList; //指向单链表的指针Status initList(LinkList *L){ (*L) = (LinkList)malloc(sizeof(LNode)); if(!(*L)) exit(OVERFLOW); (*L)->next = NULL; return OK;}Status insertElement(LinkList L, int i, ElemType e){ LinkList p, s; int j; p = L; j = 0; while(p && j
next; ++j; } if(!p || j>i-1) return ERROR; s = (LinkList)malloc(sizeof(LNode)); if(!s) exit(OVERFLOW); s->data = e; s->next = p->next; p->next = s; return OK;}Status getElement(LinkList L, int i , ElemType &e){ LinkList p = L; int j = 0; while(p && j
next; ++j; } if(!p || j>i) return ERROR; e = p->data; return OK;}Status deleteElement(LinkList L , int i , ElemType &e){ LinkList p = L , s; int j = 0 ; while (p && j
next; ++j; } if(!p->next || j>i) return ERROR; e = p->data; s = p->next; p->next = s->next;//(相当于p->next = p->next->next) return OK;}Status updateElement(LinkList L , int i , ElemType e){ LinkList p = L; int j = 0 ; while ( p && j
next; ++j; } if(!p || j>i) return ERROR; p->data = e; return OK;}//按照下标查找,返回该位置的值与getElement方法重合/*Status locateElement(LinkList L , int i , ElemType &e){ LinkList p = L; int j = 0; while( p && j
next; ++j; } if(!p || j>i) return ERROR; e = p->data; return OK;}*///按照数值查询,返回该数值的下标int LocateElement(LinkList L , ElemType e){ LinkList p = L; int j = 0; while (p && p->data != e ){ p = p->next; ++j; } return j;}int main (){ LinkList l; initList(&l); int e , e1; //ElemType j =0; insertElement(l , 0 , 12); insertElement(l , 1 , 4); insertElement(l , 2 , 55); insertElement(l , 3 , 555); updateElement(l, 2 , 44); deleteElement(l , 2 , e); getElement(l , 2 , e1); ElemType g = 555; int j = LocateElement(l , g); printf("值为:%d\n", j); printf("%d\n", e); printf("%d\n", e1);}

 

转载地址:http://xwegf.baihongyu.com/

你可能感兴趣的文章
【LEETCODE】165-Compare Version Numbers
查看>>
【LEETCODE】299-Bulls and Cows
查看>>
【LEETCODE】223-Rectangle Area
查看>>
【LEETCODE】12-Integer to Roman
查看>>
【学习方法】如何分析源代码
查看>>
【LEETCODE】61- Rotate List [Python]
查看>>
【LEETCODE】143- Reorder List [Python]
查看>>
【LEETCODE】82- Remove Duplicates from Sorted List II [Python]
查看>>
【LEETCODE】86- Partition List [Python]
查看>>
【LEETCODE】147- Insertion Sort List [Python]
查看>>
【算法】- 动态规划的编织艺术
查看>>
用 TensorFlow 让你的机器人唱首原创给你听
查看>>
对比学习用 Keras 搭建 CNN RNN 等常用神经网络
查看>>
深度学习的主要应用举例
查看>>
word2vec 模型思想和代码实现
查看>>
怎样做情感分析
查看>>
用深度神经网络处理NER命名实体识别问题
查看>>
用 RNN 训练语言模型生成文本
查看>>
RNN与机器翻译
查看>>
用 Recursive Neural Networks 得到分析树
查看>>