单链表的基本操作(初始化,增加,删除)
来源:互联网 发布:php argv 参数 编辑:程序博客网 时间:2024/06/10 18:20
最近在看数据结构,练习单链表的基本操作,没什么难度,算是做个记录吧。
#include <stdio.h>#include <malloc.h>#include <stdlib.h>//单链表的初始化增删插 date 2015/3/27//定义单链表typedef struct Node{ int data; struct Node * next;}Node,* p_Node;void init_Node(Node &*); //初始化一个结点为空的链表void add_Node_from_head(p_Node ,int );//从头部位置添加结点void add_Node_in_pos(p_Node,int,int);//在指定位置添加结点void delete_Node_in_pos(p_Node ,int);//在指定位置删除结点int get_Node_length(p_Node);//得到链表的结点数void show_Node(p_Node);//输出结点信息int main(void){ Node node; p_Node p = &node; init_Node(p); add_Node_from_head(p,5); add_Node_from_head(p,3); add_Node_from_head(p,2); add_Node_in_pos(p,3,66); delete_Node_in_pos(p,1); show_Node(p); return 0;}void delete_Node_in_pos(Node * L ,int pos){ p_Node p = L; int j = 0 ; while(p && j < pos - 1) { p = p->next; j++; } if(p == NULL || j > pos) { printf("pos错误"); exit(-1); } p_Node delete_Node = p->next; p->next = delete_Node->next; free(delete_Node);}void add_Node_in_pos(Node * L,int pos,int val){ int j = 0; p_Node p = L; while(p && j < pos - 1) { p = p->next; j++; } if(p == NULL || j > pos) { printf("pos错误"); exit(-1); } p_Node newNode = (p_Node)malloc(sizeof(Node)); newNode->data = val; newNode->next = p->next; p->next = newNode;}int get_Node_length(Node * L){ int i = 0; if(NULL == L) { printf("不存在的链表"); exit(-1); } while(L->next != NULL) { L = L->next; i++; } return i;}void show_Node(Node * L){ p_Node p ; p = L->next; while(p != NULL) { printf("%d\n",p->data); p = p->next; }}void add_Node_from_head(Node * L ,int val){ if(NULL == L || NULL == val) { printf("不存在的链表或数据"); exit(-1); } p_Node p = (p_Node)malloc(sizeof(Node)); if(NULL == p) { printf("申请内存空间失败\n"); exit(-1); } p->data = val; p->next = L->next; L->next = p;}void init_Node(Node *& p){ p = (p_Node)malloc(sizeof(Node)); if(NULL == p) { printf("申请内存空间失败\n"); exit(-1); } p->next = NULL;}
0 0
- 单链表的基本操作(初始化,增加,删除)
- 单链表的基本操作(创建,删除,增加,反向)
- Hibernate的基本操作数据库,增加,修改,删除,查询
- jquery Table 基本的表格操作,增加,隐藏,删除!
- 最大堆的初始化、删除、插入等基本操作
- 单链表基本操作:初始化,建立,插入,查找,删除
- 单链表的初始化,插入删除等操作
- 链表的java实现以及基本的增加,删除,排序操作
- C语言实现链表的创建、增加、删除、查询、逆序、清空等基本操作
- 单链表的创建、增加、删除、清空操作
- d3js的force的增加删除操作
- 线性表的顺序存储格式基本操作:初始化、插入、删除、查找、打印
- 数据结构线性表之顺序表的基本操作插入、删除、遍历、初始化
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现
- js对COOKIE的增加、删除操作
- 约束的操作 - 增加 删除 禁止 启用
- table对tr增加删除的操作
- ExtJs_Grid的增加、删除、修改、查询操作
- 百度2012研发工程师笔试
- iOS开发工具——统计Crash的工具Crashlytics
- Python编程基础之十六多线程编程
- 数学之路-sas备忘(14)
- java 冒泡排序
- 单链表的基本操作(初始化,增加,删除)
- maven 目录结构解析
- Android启动过程
- mutt+esmtp发送的配置(linux环境,使用Gmail)
- 解决在局域网内XP不能访问win8共享的打印机问题
- debug : 如果结构中有非内建类型数据,不能用ZeroMemory来清零结构体内存
- Android4.4 CTS测试Fail项修改总结(三)
- 自己动手写RTP服务器——关于RTP协议
- Android学习笔记——adb