有序链表插入与删除——C语言
来源:互联网 发布:键盘windows键解锁 编辑:程序博客网 时间:2024/06/06 12:59
#include <stdio.h>#include <malloc.h>#define DATATYPE2 char#define MAXSIZE 100typedef struct node { DATATYPE2 data; struct node *next;} LINKLIST;//outputvoid output_head(LINKLIST *head) { LINKLIST *p; for (p = head->next; p != NULL; p = p->next) { printf(" %c", p->data); } printf("\n");}//use toucharufa built single list with head nodeLINKLIST *creatlink_head_head(LINKLIST *head) { LINKLIST *t; char ch; t = (LINKLIST*) malloc(sizeof (LINKLIST)); head = t; t->next = NULL; printf("single,lianxu,end with $:"); while ((ch = getchar()) != '$') { t = (LINKLIST*) malloc(sizeof (LINKLIST)); t->data = ch; t->next = head->next; head->next = t; } return (head);}//sortLINKLIST sort(LINKLIST *sl) { LINKLIST *p, *q; int temp; for (p = sl; p != NULL; p = p->next) { for (q = p->next; q != NULL; q = q->next) { if (p->data > q->data) { temp = q->data; q->data = p->data; p->data = temp; } } } return (*sl);}//insert LINKLIST *insert(LINKLIST *head) { int c = 0; char n; printf("Enter the element that you want to insert:"); scanf("%c", &n); LINKLIST*p; p = (LINKLIST*) malloc(sizeof (LINKLIST)); LINKLIST*t; t = (LINKLIST*) malloc(sizeof (LINKLIST)); LINKLIST*r; r = (LINKLIST*) malloc(sizeof (LINKLIST)); p = head->next; t = p; r = p; LINKLIST*s; s = (LINKLIST*) malloc(sizeof (LINKLIST)); while (n > t->data) { p = p->next; t = p->next; c++; } if (c == 1) { s->data = n; s->next = r->next; r->next = s; } else { s->data = n; s->next = p->next; p->next = s; } return (head);}//deleteLINKLIST *dele(LINKLIST *head) { LINKLIST*p; char n; printf("plase input dele a value\n"); scanf("%c", &n); for (p = head; p->next != NULL; p = p->next) { if (p->next->data == n) { p->next = p->next->next; } if (p->next == NULL) break; } return (head);}main() { LINKLIST *head = NULL; LINKLIST *p = head; int choose; printf("\n Build single list:\n\n"); head = creatlink_head_head(head); fflush(stdin); sort(head); printf("Output single list element's value:"); output_head(head); while (1) { printf("Please select the operating:"); printf("1:Insert 2:Delete\nYour choose:"); scanf("%d", &choose); fflush(stdin); if (choose == 1) { insert(head); break; } else if (choose == 2) { dele(head); break; } else { printf("Please enter the correat choose!"); } } printf("Output new single list element's value:"); output_head(head);}
0 0
- 有序链表插入与删除——C语言
- 《算法与数据结构》实验课实验三思考题——有序链表插入元素——C语言
- 数据结构——有序单链表的建立、插入与删除
- 有序双向链表的插入 C语言实现
- 有序插入建立链表 C语言实现
- 数据结构——有序线性表的的插入与删除
- c语言 单链表的插入与删除
- 链表(三)——链表删除冗余结点&插入结点到有序链表
- C语言—链表的插入
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- 《C语言及程序设计》实践参考——有序数组中插入数据
- 《C语言及程序设计》实践参考——有序数组中插入数据(函数版)
- 第14周 《C语言及程序设计》实践参考——有序数组中插入数据
- C语言实现有序单链表的插入
- 有序单链表的插入 C语言实现
- C语言链表的插入和删除、建立
- C语言实现双向链表插入,删除
- C语言链表的建立、插入和删除
- 一个判别表达式中开、闭括号是否配对出现的算法
- 微信公众帐号开发教程第6篇-文本消息的内容长度限制揭秘
- Ubuntu下自动加载U盘
- ubuntukylin安装nvidia的双显卡切换驱动--大黄蜂Bumblebee
- 杭电1163
- 有序链表插入与删除——C语言
- 黑马程序员 类的加载、连接、初始化
- 2-SAT暴力dfs模板解释|不看你会后悔的
- 两个栈实现一个队列
- 共享服务器模式(shared server)和专用服务器模式(dedicated server)
- c++学习笔记之成员模板
- Toast用法
- 为什么可以不创建对象就调用类的成员函数?
- 微信公众帐号开发教程第7篇-文本消息中换行符的使用