26个字母单链表的插入与删除
2018-01-03 23:10
1096 查看
//26个字母单链表的插入与删除
#include<stdio.h> #include<stdlib.h> typedef struct Sqlist { char data; struct Sqlist *next; }Sqlist, *LinkList; Sqlist *p, *q, *head; int n; int m = sizeof(Sqlist); void bulid()//构建26个字母的单链表 { int i; head = (Sqlist*)malloc(m);//分配头结点的空间 p = head; for (i = 1; i < 26; i++) { p->data = i + 'a' - 1; p->next = (Sqlist*)malloc(m); p = p->next; } p->data = i + 'a' - 1; p->next = NULL; }; void printf()//打印出26字母单链表 { p = head; while (p->next != NULL) { printf("%c", p->data); p = p->next; } printf("%c\n", p->data); }; void Insert(Sqlist*head) { Sqlist *h; p = head; int i; char s; printf("请输入您要插入的位置"); scanf("%d", &i); getchar(); printf("请输入您要插入的字母"); scanf("%c", &s); printf("\n"); h = (Sqlist*)malloc(m);//插入新节点 h->data = s; p = head->next; int j=1; while (p&&j < i-1) { q = p; p = p->next; j++; } if (!p || j>i) { h->next = NULL; q->next = h; } else { h->next = p->next; p ->next = h; } printf(); } void Delete(Sqlist *head) { p = head; int i; int j = 1; printf("请输入您要删除的位置"); scanf("%d", &i); while (p->next&&j < i - 1) { p = p->next; j++; } if (!(p->next || j < i - 1)) printf("出现错误"); else q = p->next; p->next = q->next; free(q); } int main() { bulid(); printf(); Insert(head); Delete(head); printf(); system("pause"); return 0; }
//以下为运行结果:
相关文章推荐
- 26个字母单链表,实现插入,删除,查找操作
- 基于线性表:编写26个字母按特定字母值插入或删除的完整程序
- 运用顺序存储结构编写26个字母按特定字母值插入或删除的程序
- 链表编写26个字母按特定字母值插入或删除的完整程序
- 建立单链表,把’a'–’z’26个字母插入,倒叙,打印
- C/C++ | 20-7链表,单链表的建立,把’a'–’z’26个字母插入,倒叙,打印
- 单链表的建立,把a~z 26个字母插入到链表中,并且倒叙,还要打印
- 单链表的建立、测长、打印、删除节点、插入节点
- 二级指针实现单链表的插入、删除及 linux内核源码双向链表之奇技
- 【数据结构】单链表(一)单链表的定义,插入,删除和查找操作
- 单链表的基本操作的实现(建立、插入、删除、逆序)
- 单链表的创建(头插法尾插法),插入,删除
- 单链表的创建、取数据、数据添加、数据插入、数据删除
- 单链表的基本操作(创建、插入、删除......)
- 单链表的节点插入、遍历、删除、逆序
- 单链表的创建,删除,插入,清空全部用一级指针也没发现什么问题啊
- 笔试题:创建一个单链表,结点包含学生的学号,姓名,性别,年龄信息.写几个程序,实现按学生学号插入,查询,删除等操作.
- 数据结构:头插法、尾插法创建单链表,求链表长度、查找、插入、删除、合并
- 单链表的插入与删除
- 单链表的读取,插入和删除。