数据结构-线性表链式表示
2015-09-21 06:55
253 查看
声明:此为书中笔记,笔者只想把它贴出来,以后再慢慢整理。
2015-09-19
author:tianhangyu8886@gmail.com
Linklist Creatlist2(Linklist &L){
int x; //设置元素类型为整型
L=(Linklist)malloc(sizeof(LNode));
LNode *s,*r=L; //r为表尾指针
scanf("%d",&x); //输入结点的值
while(x!=9999){ //输入9999表示结束
s=(LNode*)malloc(sizeof(LNode)); //创建新建结点
s->data=x;
r->next=s;
r=s; //r指向新的表尾结点
scanf("%d",&x);
}
r->next=NULL; //尾结点指针置空
return L;
}
//按序号查找结点值
LNode *GetElem(Linklist L ,int i){
int j=1; //计算,初始化为1
LNode *p=L->next; //头结点指针域给p
if(i==0)
return L; //若等于0,则返回头结点
if(i<1)
return NULL; //若i无效,返回空
while(p&&j<i){ //从第一个结点开始查找第i个结点
p=p->next;
j++;
}
return p; //返回第i个结点的指针,如果i大于表长,p=NULL.
}
//{4}按值查找结点
LNode *LocateElem(Linklist L,ElemType e){ //本算法查找单链表L(带头结点)中数据域
//值等于e的结点指针,否则返回NULL
LNode *p=L->next;
while(p!=NULL&&p->data!=e) //从第1个结点开始查找data域为e的结点
p=p->next;
return p; //找到后返回该结点的指针
}
//{5}插入结点操作
//先检查插入位置的合法性,然后找到带插入位置的前驱结点,即第i-1个结点,再在其后插入新结点
p=GetElem(L,i-1);
s->next=p->next; //s的指针域指向p的后继结点
p->next=s; //再把p的指针域指向s
2015-09-19
author:tianhangyu8886@gmail.com
Linklist Creatlist2(Linklist &L){
int x; //设置元素类型为整型
L=(Linklist)malloc(sizeof(LNode));
LNode *s,*r=L; //r为表尾指针
scanf("%d",&x); //输入结点的值
while(x!=9999){ //输入9999表示结束
s=(LNode*)malloc(sizeof(LNode)); //创建新建结点
s->data=x;
r->next=s;
r=s; //r指向新的表尾结点
scanf("%d",&x);
}
r->next=NULL; //尾结点指针置空
return L;
}
//按序号查找结点值
LNode *GetElem(Linklist L ,int i){
int j=1; //计算,初始化为1
LNode *p=L->next; //头结点指针域给p
if(i==0)
return L; //若等于0,则返回头结点
if(i<1)
return NULL; //若i无效,返回空
while(p&&j<i){ //从第一个结点开始查找第i个结点
p=p->next;
j++;
}
return p; //返回第i个结点的指针,如果i大于表长,p=NULL.
}
//{4}按值查找结点
LNode *LocateElem(Linklist L,ElemType e){ //本算法查找单链表L(带头结点)中数据域
//值等于e的结点指针,否则返回NULL
LNode *p=L->next;
while(p!=NULL&&p->data!=e) //从第1个结点开始查找data域为e的结点
p=p->next;
return p; //找到后返回该结点的指针
}
//{5}插入结点操作
//先检查插入位置的合法性,然后找到带插入位置的前驱结点,即第i-1个结点,再在其后插入新结点
p=GetElem(L,i-1);
s->next=p->next; //s的指针域指向p的后继结点
p->next=s; //再把p的指针域指向s
相关文章推荐
- 【数据结构之旅】循环队列
- java数据结构
- 从算法+数据结构到MVC
- 数据结构 线性结构中的链表
- 行编辑问题的实现
- 数据结构之---C语言实现栈的表达式求值(表达式树)
- 算法数据结构之贪心算法
- 算法库应用——删除元素在[x, y]之间的元素
- 数据结构学习---链表的若干操作
- 数据结构学习---链表的若干操作
- 研磨数据结构与算法-12遍历二叉树
- 研磨数据结构与算法-11二叉树的基本操作
- 二叉树的创建、遍历、高度 例子
- 顺序表的基本操作(创建,遍历,查找,删除,归并)
- 数据结构--堆的实现(下)
- 【数据结构之旅】顺序栈的定义、初始化、空栈判断、入栈、出栈操作
- 【数据结构之旅】顺序栈的定义、初始化、空栈判断、入栈、出栈操作
- 研磨数据结构与算法-10二叉树的基本概念
- 研磨数据结构与算法-09快速排序
- 研磨数据结构与算法-08希尔排序