线性表的链式结构创建与实现(一)
来源:互联网 发布:简单php文件管理系统 编辑:程序博客网 时间:2024/05/22 00:37
个人理解,仅供参考
创建链表的步骤:
1:创建头指针
2:将头指针指向空,防止野指针
3:将新的指针移动到头指针(我习惯认为是将头指针赋值给它)
4:建立新结点
5:让新指正指向空,防止野指针
6:给新指针赋值
7:让尾指针指向当前指针,实现链表的连接(我习惯认为是让上一指针指向它)
8:将尾指针移向当前指针(我习惯认为将当前指针赋值给它)
***每次创建新指针的时候都要将指针指向NULL,防止成为野指针
#include<stdio>typedef struct node{int data;struct node *next;}node;node *CreateLink(int len){node *p,*h,*s;h=(node*)malloc(sizeof(node)); //建立头结点 h->next=NULL; //头结点指针指向空,防止野指针p=h; //指针向头指针移动 for(int i=0;i<len;i++){s=(node*)malloc(sizeof(node)); //建立新指针scanf("%d",&s->data); //给新指针赋值 s->next=NULL //新指针指向空,防止野指针p->next=s; //尾指针指向当前指针,实现链表的连接p=s; //指针p向后移动 } return h; }
int GetLenth(node *h) //*h头指针 {node *p;p=h->next; //p指向第一个结点 num=0; //计数器while(p!=NULL){num++; p=p->next; //指针向后移动 } return num;}
取元素操作(找到第i个元素,并返回其值)
int FindElement(node *h,int i,int len){node *p;p=h->next; //p指向第一个结点 count=1; //计数器 if(i>len&&i<1) //判断i是否合法 return -1;while(p!=NULL&&count<i) //找到第i个元素 {p=p->next; //从头结点开始顺着往后找 count++;} return p->data; }
输出链表
void Display(node *h){node *p;p=h->next; //p指向第一个节点 while(p!=NULL){printf("%d",p->data) //输出结点数值 p=p->next; //指针向后移动 }}
未完待续...
阅读全文
0 0
- 线性表的链式结构创建与实现(一)
- (一)线性表的链式存储结构
- 一、(2)C++ 实现简单的线性表(链式存储结构 - 单链表)
- 链式结构线性表的实现
- 链式结构线性表的实现
- java实现的链式线性表结构
- 线性表的链式结构实现
- 链式结构线性表的实现(二)
- 线性表的链式存储结构(C语言实现)
- 数据结构---线性表的链式表示和实现(一)
- 线性表的链式表示与实现
- 线性表的链式表示与实现
- 线性表的链式表示与实现
- 线性表的链式表示与实现
- 线性表的链式表示与实现
- 线性表的链式存储与实现
- 线性表的顺序存储结构与链式存储结构
- 线性表的链式结构
- java获取当前时间12/24小时制
- Java学习笔记09——持久层框架MyBatis
- Selenium+java分层(五)
- Spring内置事件
- 用oracle语句计算百分比
- 线性表的链式结构创建与实现(一)
- Nginx几种负载均衡算法及配置实例
- 大话设计模式铺垫
- 2017Android百搭框架排行
- ARM的体系架构
- GSON解析json数据详解
- android照相、相册获取图片剪裁报错的解决方法
- 《大话设计模式》——读后感 (1)代码无错就是优?——简单工厂模式
- 精通正则表达式三:非捕获型括号