数据结构示例之链表在指定节点后插入新元素
来源:互联网 发布:linux查看所有用户名 编辑:程序博客网 时间:2024/06/07 18:26
以下是“链表在指定节点后插入新元素”的简单示例:
1. 用c语言实现的版本
#include<stdio.h>#include<stdlib.h>typedef char datatype;typedef structnode{datatype data;struct node *next;} listnode;typedef listnode *linklist;listnode *p;/* 创建链表,从表头插入新元素 */linklist createlist(void){char ch;linklist head;listnode *p;head = NULL; /*初始化为空*/printf("请输入字符序列:\n");ch = getchar();while (ch != '\n'){p = (listnode*)malloc(sizeof(listnode));/*分配空间*/p->data = ch; /*数据域赋值*/p->next = head; /*指定后继指针*/head = p; /*head指针指定到新插入的结点上*/ch = getchar();}return head;}/*在第i个节点后,插入x*/int insertnode(linklist head, char x, int i){int j = 0;listnode * p, *s;p = head;while (p && j <(i - 1)){p = p->next;++j;}if (!p || j>(i - 1)){return -1;}s = (linklist)malloc(sizeof(listnode));s->data = x;s->next = p->next;p->next = s;return 1;}void main(){linklist list, head;int i;char x;/* 创建链表,从表头插入新元素 */list = createlist();head = list;printf("在插入前,输出链表中的元素\n");do{printf("%c", head->data);head = head->next;} while (head != NULL);printf("\n要在其后插入新节点的节点位置:");scanf("%d", &i);printf("要插入的值:");getchar();scanf("%c", &x);/*在第i个节点后,插入x*/int res = insertnode(list, x, i);if (res == -1){printf("插入失败\n");}else{printf("[%c]插入成功\n", x);}printf("在插入后,输出链表中的元素\n");do{printf("%c", list->data);list = list->next;} while (list != NULL);printf("\n");}
运行结果如下图所示:
0 0
- 数据结构示例之链表在指定节点后插入新元素
- 数据结构示例之由尾部插入新元素的链表
- 数据结构示例之构造从头部插入的、指定节点数的链表
- 数据结构示例之链表头部插入新节点
- 链表末尾插入新元素
- 数据结构和算法设计专题之---单链表中在指定的节点前面插入以及删除一个节点
- 用js实现在现有元素后插入一个新元素
- 数据结构:单链表(二)之链表节点排序,升序插入数据,删除指定的所有节点,翻转链表操作
- 实现双向链表删除一个节点P,在节点P后插入一个节点
- 选择排序后插入新元素
- 数据结构示例之带头节点的双向循环链表
- 数据结构示例之带头节点的、单循环链表
- 数据结构示例之带头节点的双向循环链表
- 【算法之链表(三)】单链表中,在仅允许使用一个指针的情况下,在指定的节点前面插入以及删除一个节点
- (23)使用DOM插入新元素,每次插入的新节点放在最前面
- C#控制台基础 arraylist在指定索引值前面,插入新元素
- 单向链表(三) 在指定位置插入新的节点
- 遍历XML,在指定位置插入节点
- 趣味益智
- lua绑定c++的时候常见得错误
- 为什么库开发者需要考虑使用抽象类代替接口
- C語言Linux環境下工作目錄相關
- 解释器模式设计路由器
- 数据结构示例之链表在指定节点后插入新元素
- HDU 4777 Rabbit Kingdom(离线树状数组 预处理)
- C#文件操作
- 浅析volatile关键字
- java编程思想读书笔记 第十八章 java I/O系统(第一篇)
- 使用java实现逆波运算
- 计算机视觉方向的一些顶级会议和期刊以及牛人
- java中的反射总结
- 使用hibernate 的hql进行查询表名无效问题