数据结构--单链表
2016-02-14 16:34
316 查看
数据结构--单链表
在数据结构中 链表学习最为基础
typedef struct Lnode{
int no;
struct Lnode *next;
}LinkList;
在链表的创建中,需要存储数据时先为当前指针申请存储空间,即一个结点。例:
q=(LinkList *)malloc(sizeof(LinkList)); //申请存储空间
再输入数据 例:cin>>q->no;
//输入数据
子函数例:
LinkList *CreateList()
{
LinkList *q,*p,*L;
L=(LinkList *)malloc(sizeof(LinkList));
//申请首结点地址
// L->next=NULL;
//网上给出的是指向空
cin>>L->no;
//第一个结点数据
p=L; //将p指向首结点
while(p->no!=-1)
{
q=(LinkList *)malloc(sizeof(LinkList));
//再申请存储空间
cin>>q->no;
//输入数据
p->next=q;
//将q添加到链表的末端 此时的p指向的是链表末端结点
p=q; //p指向q的结点
}
p->next=NULL;
return L;
}
注:
p、q、L都是指针变量,指针变量指向的是一个地址,当p=q时,不是把q的指向的数据赋值给p,而是将q的指向的地址赋值给p,所以p指向了q所指的结点,即完成了指针的后移。
输出函数 例:
void Output(LinkList *L)
{
while(L->next!=NULL)
{
cout<<L->no<<" ";
L=L->next;
}
cout<<endl;
}
主函数 例:
int main()
{
LinkList *L;
L=CreateList();
Output(L);
return 0;
}
在数据结构中 链表学习最为基础
typedef struct Lnode{
int no;
struct Lnode *next;
}LinkList;
在链表的创建中,需要存储数据时先为当前指针申请存储空间,即一个结点。例:
q=(LinkList *)malloc(sizeof(LinkList)); //申请存储空间
再输入数据 例:cin>>q->no;
//输入数据
子函数例:
LinkList *CreateList()
{
LinkList *q,*p,*L;
L=(LinkList *)malloc(sizeof(LinkList));
//申请首结点地址
// L->next=NULL;
//网上给出的是指向空
cin>>L->no;
//第一个结点数据
p=L; //将p指向首结点
while(p->no!=-1)
{
q=(LinkList *)malloc(sizeof(LinkList));
//再申请存储空间
cin>>q->no;
//输入数据
p->next=q;
//将q添加到链表的末端 此时的p指向的是链表末端结点
p=q; //p指向q的结点
}
p->next=NULL;
return L;
}
注:
p、q、L都是指针变量,指针变量指向的是一个地址,当p=q时,不是把q的指向的数据赋值给p,而是将q的指向的地址赋值给p,所以p指向了q所指的结点,即完成了指针的后移。
输出函数 例:
void Output(LinkList *L)
{
while(L->next!=NULL)
{
cout<<L->no<<" ";
L=L->next;
}
cout<<endl;
}
主函数 例:
int main()
{
LinkList *L;
L=CreateList();
Output(L);
return 0;
}
相关文章推荐
- 【数据结构】用两个栈实现队列
- 【数据结构】二维数组中的查找
- 二叉树操作
- 数据结构——图
- 基础数据结构之数组与链表(四)
- 数据结构图文解析之:数组、单链表、双链表介绍及C++模板实现
- 数据结构之通用双端链表
- 数据结构热身
- Python中的数据结构和面向对象设计模式的算法
- 我写数据结构排序部分的部分心得
- 学习笔记------数据结构(C语言版)串的堆分配存储表示
- 数据结构:哈夫曼树,哈夫曼编码与译码系统
- Java数据结构与算法之单链表及简单操作
- 数据结构实验之链表八:Farey序列
- hash(哈希散列) 数据结构-9
- 微软公司数据结构+算法面试题
- 树状数组 (数据结构)
- 数据结构循环队列
- Trie树
- 数据结构 栈和队列