链表编写26个字母按特定字母值插入或删除的完整程序
来源:互联网 发布:淘宝技巧 编辑:程序博客网 时间:2024/04/29 02:22
#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()
{
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()
{
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 < 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;
#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()
{
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()
{
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 < 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;
}
阅读全文
0 0
- 链表编写26个字母按特定字母值插入或删除的完整程序
- 基于线性表:编写26个字母按特定字母值插入或删除的完整程序
- 26个字母单链表,实现插入,删除,查找操作
- 美丽的26个字母
- 26个字母的浪漫爱情
- 26个字母的幸福
- 【程序26】 题目:请输入星期几的第一个字母来判断一下是星期几, 如果第一个字母一样,则继续 判断第二个字母。
- 选择城市,左边是按字母顺序的城市排列,右边是26个字母
- 输入若干个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”
- 大一菜鸟编写的移动的字母程序
- 26个字母
- 26个英语字母
- 取26个字母
- 多个数字或字母的组合列举
- ch09_ex44 编写按第一个字母…
- [法语] 法语26个字母的发音
- 26个字母的爱情含义
- 26个字母的爱情含义!
- Flash as3资源加载
- springmvc的拦截器工作原理
- 第一篇博客
- 深入浅出JVM优化策略
- Flash中本地缓存
- 链表编写26个字母按特定字母值插入或删除的完整程序
- Java的优点
- 铅笔画算法
- Activity启动模式
- linux基础练习(二)
- A
- HDU4049【状压DP】
- 面向逻辑概念的虚拟编程
- git学习