单向链表 增 删 改 查
来源:互联网 发布:java编程培训机构 编辑:程序博客网 时间:2024/06/05 02:13
#include <stdio.h>#include <malloc.h>typedef struct node {int num;node* next;} NODE;int lenght = -1;//线性表的链式结构的长度/* 创建节点 */NODE* create_node(int num) {NODE* n = (NODE*) malloc(sizeof(NODE));n->num = num;n->next = NULL;lenght++;return n;}/* 插入一个结点到某个数字的后面 return 插入是否成功*/int insert_node(NODE* head, int how, int num) {NODE* p = head->next;while (p != NULL) {if (p->num == how) {NODE* z = p->next;p->next = create_node(num);p->next->next = z;return 1;}p = p->next;}return 0;}/* 删除一个结点*/int delete_node(NODE* head, int how) {NODE* p = head->next;NODE* last = head;while (p != NULL) {if (p->num == how) {last->next = p->next;free(p);p = NULL;lenght--;return 1;}p = p->next;last = last->next;}return 0;}/* 修改一个结点*/void update_node(NODE* head, int how, int num) {NODE* p = head->next;while (p != NULL) {if (p->num == how) {p->num = num;return;}p = p->next;}printf("该元素不存在!\n");}/* 查询一个节点*/void search_node(NODE* head, int how) {NODE* p = head->next;while (p != NULL) {if (how == p->num) {printf("查询到 %d\n", p->num);return;}p = p->next;}printf("该元素不存在!\n");}void print_list(NODE* head) { //线性表的链式结构的遍历NODE* p = head;while (p != NULL) {printf("%d ", p->num);p = p->next;}printf("\n\n");}int main() {NODE* headNode = create_node(-1); //创建头结点NODE* p = headNode;for (int i = 0; i < 10; i++) {p->next = create_node(i);if (headNode->next == NULL) {printf("NULL");}p = p->next;}printf("线性表的链式结构的长度 = %d\n", lenght);print_list(headNode->next);printf("--插入数据:100\n");insert_node(headNode, 4, 100); //在数字4的后面插入100 printf("线性表的链式结构的长度 = %d\n", lenght);print_list(headNode->next);printf("--删除数据:0\n");delete_node(headNode, 0); //删除数字为0的节点printf("线性表的链式结构的长度 = %d\n", lenght);print_list(headNode->next);printf("--修改数据:1\n");update_node(headNode, 1, 111); //修改数字1为111printf("线性表的链式结构的长度 = %d\n", lenght);print_list(headNode->next);printf("--查询数据:1000\n");search_node(headNode, 1000); //查询1000是否存在于链表当中 return 0;}
0 0
- 单向链表 增 删 改 查
- java实现单向链表的增、删、改、查
- 单向链表的增删改查
- java链表之--单向链表的增删改查
- java链表结构(单向、双向的增删改查)
- 关于单向链表创建以及一些简单的增删查改功能
- 单向动态链表练习(学生系统的增删改查)
- 增、删、改、查
- 无头结点链表的增、删、改、查
- 链表的综合练习:增、删、改、查
- 链表的增,删,改,查实现
- 循环链表实现增、删、改、查等功能
- 顺序表的增,删,改,查
- xml增、删、改、查
- xml 增 删 改 查
- xml 增 删 改 查
- xml 增 删 改 查
- xml 增 删 改 查
- 理解Java注解(java.lang.annotation)
- android developer tiny share-20170204
- Codeforces 514D R2D2 and Droid Army【二分+RMQ】
- php linux环境显示站点错误信息
- jsp跳转 和 serlvet跳转
- 单向链表 增 删 改 查
- 关于年前接到的外包单总结
- 一个执行计划异常变更的案例 - 外传之SQL Profile(上)
- ajax发送请求的方式
- JAVASE基础-day03(Java语言基础)
- spring注解扫描
- 使用python的wordcloud包实现中文标签云制作
- Eclipse中安卓开发遇到parseSdkContent failed Could not initialize class android.graphics.Typeface问题
- 【Codeforces 733 C. Epidemic in Monstropolis】+ 模拟