帮忙设计个程序,数据结构C语言版的。 20

已知L为没有头结点的的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其它字符,编写算法构造三个以带头结点的单循环链表表示的线性... 已知L为没有头结点的的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其它字符,编写算法构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符。 要求;1、算法基本思想,2、程序(带注释。包括实现算法的函数和调用算法的主程序),3、两个以上的算例(包括输入数据、操作步骤、运行结果和分析说明)。
也可以先帮写下主程序。
展开
 我来答
ludonglue3
2013-01-31 · TA获得超过192个赞
知道答主
回答量:150
采纳率:0%
帮助的人:83.9万
展开全部
/*
将没有头结点的链表中的字符数据分类
用三个带头结点的链表存放
*/
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef struct node{
int data;
struct node *next;
}node,*list;
//输入原始字符串进无头结点的链表
list input(){
char ch;
char e;
list L=NULL,p,q;
printf("\n请输入数据(空格隔开):\n");
do{
scanf("%c",&e);
ch=getchar();
if(L==NULL){
p=(list)malloc(sizeof(node));
if(!p){
printf("\n分配空间失败\n");
exit(1);
}
p->data=e;
L=p;
}
else{
q=(list)malloc(sizeof(node));
if(!q){
printf("\n分配空间失败\n");
exit(1);
}
q->data=e;
q->next=NULL;
p->next=q;
p=q;
}
}while(ch!='\n');
return L;
}
//初始化带头结点的链表
list init(){
list L;
L=(list)malloc(sizeof(node));
if(!L){
printf("\n分配空间失败\n");
exit(1);
}
L->next=NULL;
return L;
}
//输出链表中的数据
void output(list L,int i){ //i判断链表类型
list p;
switch(i){ //无头结点
case 0:
p=L;
break;
case 1:
p=L->next; //有头结点
break;
}
do{
printf("%c",p->data);
p=p->next;
}while((p!=L&&i==1)||(p->next&&i==0));
printf("\n");
}
//把元素插到链表末端
void insert(list L,char e){
list p=L,q;
while(p->next){ //使p指向最后
p=p->next;
}
q=(list)malloc(sizeof(node));
if(!q){
printf("\n分配空间失败\n");
exit(1);
}
q->data=e;
q->next=NULL;
p->next=q;
p=q;
}
void circle(list L){
list p=L;
while(p->next){
p=p->next;
}
p->next=L;
}
void main(){
list L,L1,L2,L3;
list p;
L=input(); //存英文
L1=init(); //存数字
L2=init(); //存其他符号
L3=init();
p=L;
while(p){
if(p->data>='a'&&p->data<='z'||p->data>='A'&&p->data<='Z'){
insert(L1,p->data);
p=p->next;
}
else if(p->data>='0'&&p->data<='9'){
insert(L2,p->data);
p=p->next;
}
else{
insert(L3,p->data);
p=p->next;
}
}
circle(L1);
circle(L2);
circle(L3);
printf("\n原始数据:");
output(L,0);
printf("\n英文字符:");
output(L1,1);
printf("\n数字:");
output(L2,1);
printf("\n其他字符:");
output(L3,1);
}
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
Didar905
2013-01-21 · TA获得超过177个赞
知道答主
回答量:39
采纳率:0%
帮助的人:18.8万
展开全部
╭∩╮(︶︿︶)╭∩╮鄙视你!电脑硬盘刚刚格了,不然里面有一大堆的这种代码,帮不到你了...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式