怎样在链表查找中查找那些字符相同的数据并显示出来

c语言链表中查找字符串问题,看补充_百度知道
c语言链表中查找字符串问题,看补充
但是如果输入的内容在链表中查找不到;\……………\n
运城市航班信息\n按“任意键”回到管理员系统主页 ;n&
getch();n\n请输入要查询的航班的航班号;),但如果始终查找不到;n\).name:\n▅▅▅▅▅\
printf(&cls&quot.管理员系统&
head=air_read(),(*p);,这又怎么表示;n&
system(&quot,(*p);%s&
manage_menu(););\,num)==0)
printf(&);n&);
printf(&管理员系统&),(*p);*这里如果查找出来的话就会显示出来;
printf(&););
scanf(&quot?case 4;n&cls&
printf(&);n&…………………………………………………………………………………………………………&
printf(&n&quot:
system(&quot?*/
printf(&n&)!\\
}&#47,&num);n▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅&#92.time.price);\cls&quot.kind,(*p),(*p);n&n&
while(p;…………………………………………………………………………………………………………&quot,(*p),(*p);
printf(&quot.num如果输入的内容查找到了,该怎么表示;);
%-5d&#92!=NULL)
if(strcmp(p-&n\n
运城市航班信息\);););n\
p=p-&gt!;&#92,可以让他显示出了;);\n\
printf(&名称
票价(元)\
system(&n&).fly,(*p);
printf(&quot
提问者采纳
找到后直接return 0;不然就让它接着执行
额…,这样就不能查找第二个结果了,那会儿本来也想这样结束循环。但另一个航班就显示不出来了,还得修改别的代码了
那就用if... else吧
提问者评价
嗯,这个方法也是显示不全,有点灵感了,我再细想一想,这几天代码写多了,脑袋转不过来了。
其他类似问题
为您推荐:
您可能关注的推广
链表的相关知识
其他2条回答
*&#47!&查找不到在&#47,该怎么表示;*这里如果查找出来的话就会显示出来;),但如果始终查找不到,&后加上:if(p==NULL) then printf(%s
then 怎么申明?写成:if(p==NULL) printf(&查找不到!&); 要是查找到结果,不仅显示结果,还显示“查找不到!”这……
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何从一个链表中,找出重复的数据,并找出次数
[问题点数:40分,结帖人xinsuixiaofeiyu]
如何从一个链表中,找出重复的数据,并找出次数
[问题点数:40分,结帖人xinsuixiaofeiyu]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。第 4 章数据结构习题题目及答案 串_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
第 4 章数据结构习题题目及答案 串
上传于||文档简介
&&数​据​结​构​习​题​题​目​及​答​案
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
下载文档到电脑,查找使用更方便
还剩6页未读,继续阅读
你可能喜欢数据结构实验之链表七:单链表中重复元素的删除 - 博客频道 - CSDN.NET
落叶旅人空城的博客
分类:数据结构-线性表-链表
按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个)。
第一行输入元素个数n;&
第二行输入n个整数。
第一行输出初始链表元素个数;&
第二行输出按照逆位序所建立的初始链表;
第三行输出删除重复元素后的单链表元素个数;
第四行输出删除重复元素后的单链表。
21 30 14 55 32 63 11 30 55 30
30 55 30 11 63 32 55 14 30 21
30 55 11 63 32 14 21
&#include &stdio.h&
#include &stdlib.h&
#define P (struct node *)malloc(sizeof(struct node))
struct node
struct node *
struct node *creat(struct node *head,int n)
struct node *p;
for(i=1; i&=n; i++)
scanf(&%d&,&p-&data);
p-&next=head-&
head-&next=p;
printf(&%d\n&,n);
struct node *del(struct node *head)
struct node *p,*t,*tail,*q;
int count=0;
head-&next=NULL;
if(head-&next==NULL)
p-&next=NULL;
tail-&next=p;
int flag=1;
if(t-&data==p-&data)
p-&next=NULL;
tail-&next=p;
printf(&%d\n&,count);
void print(struct node *head)
struct node *p;
printf(&%d&,p-&data);
printf(& %d&,p-&data);
printf(&\n&);
int main()
struct node *
head-&next=NULL;
scanf(&%d&,&n);
head=creat(head,n);
print(head);
head=del(head);
print(head);
排名:千里之外
(1)(4)(5)(2)(1)(3)(6)(6)(14)C++中如何是实现从文件中同时读入字符和数据?_百度知道
C++中如何是实现从文件中同时读入字符和数据?
文件内容:北京 1 0 2 2 3
天津 2 0 2 1 3
河北 3 0 7 1 2 9 18 8 7 6
黑龙江 4 0 2 5 7
吉林 5 0 3 4 6 7
内蒙古 7 0 8 4 5 6 3 8 10 11 12
山西 8 0 4 7 10 3 18
山东 9 0 4 3 18 31 29
陕西 10 0 5 7 11 12 17 27
……………………………………存储结构为邻接表,字符存入邻接表头结点,且头结点构成一个数组。
这个....用回车符换行订哗斥狙俪缴筹斜船铆的语句又该如何实现?请不吝指教....强调一下,所用为 C++ 编程语言,不是 C !.
提问者采纳
//我的程序可以读以下形式的数据,主要实现了两个不定长//1,空格不定长;2,空格隔开的数据补丁长。://
temp.txt //aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(n个空格)aaaaaaaaaaa(n个空格)a aaaaaaaaaaaaaaaaaa(n个空格)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(n个空格)aaaaaaa#include &stdio.h&#include &stdlib.h&#include &string.h&#define BUF_SIZE 100#define oops dowhile(0)
//出错处理,返回-1//数据的链表,因为你的数据长度不可知,所以,我选择用链表处理typedef struct LinkNode{
char * struct LinkNode *}*LinkL int read_data(LinkList *L,FILE *fp);
void Add2List(LinkList *Ltail,char *data,int length,int cat);void show_data(LinkList L);void main(){ LinkList L=NULL; FILE * if((fp = fopen(&temp.txt&,&r&))==NULL)
read_data(&L,fp); show_data(L-&next );}//显示链表中的数据void show_data(LinkList L){ while(L) {
printf(&%s\t%d\n&,L-&cdata ,L-&length );
L= L-& }}//把文件中的数据读入链表int read_data(LinkList *L,FILE *fp){ size_t readbytes = 0,i = 0,j = 0; int line_cat = 0; long file_ LinkList Ltail = NULL;
fseek(fp,0,SEEK_END); file_len = ftell(fp); fseek(fp,0,SEEK_SET);
//这三行用来获得文件长度
//头结点为空,然后头结点后的都用来存储数据。 if((*L = Ltail = (LinkList)malloc(sizeof(struct LinkNode))) == NULL)
char buf[1025]; while((file_len -= readbytes) != 0) //若发现读完,则退出 {
if((readbytes = fread(buf,1,1024,fp)) == -1)
buf[readbytes] = 0;
while( i & readbytes)
if(buf[i]==' ') //若当前字符串为空格,则
//插入有j -& i 的数据至
buf[i] = 0;
if(line_cat) //判断前面读的一行,是否没有空格,如果前面一行无空格,则把此数据连接到当前尾节点的字符,如果有订哗斥狙俪缴筹斜船铆空格则新建一个节点,并把数据复制到节点
Add2List(&Ltail,&buf[j],i-j,1);
line_cat = 0;
Add2List(&Ltail,&buf[j],i-j,0);
while(buf[++i] == ' ') ;
if(j == 0 ) //如果整行都没有发现空格,则把数据保存。
if(line_cat) //同上。
Add2List(&Ltail,&buf[j],i-j,1);
line_cat = 0;
Add2List(&Ltail,&buf[j],i-j,0);
line_cat = 1;
} } return 0;}//保存字符串data到链表中。cat指示数据是否连接到当前节点,还是复制到新建的节点。void Add2List(LinkList *Ltail,char *data,int length,int cat){ if(!cat) {
if(((*Ltail)-&next = (LinkList )malloc(sizeof(struct LinkNode))) == NULL)
*Ltail = (*Ltail)-&
if(((*Ltail)-&cdata = (char *)malloc(length + 1)) == NULL)
strcpy((*Ltail)-&cdata ,data);
(*Ltail)-&next = NULL;
(*Ltail)-&length = } else {
if(((*Ltail)-&cdata = (char *)realloc((*Ltail)-&cdata ,strlen((*Ltail)-&cdata )+length + 1)) == NULL)
strcat((*Ltail)-&cdata ,data);
(*Ltail)-&length += } }//最后程序没有释放内存,楼主可以自己释放试试。还有,此程序有点难度,新手可能比较难懂。嘻嘻。 如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
其他类似问题
为您推荐:
其他3条回答
已使用c的标准库函数:open();fscanf();close()fscanf(*fp,&%s %d 订哗斥狙俪缴筹斜船铆%d %d %d %d&,s,&d1,,&d2,&d3,&d4,&d5)如果第一个字符串里没空格的话可以。也可使用MFC离得CFile类。
使用fgets()函数,每次读取一行,到回车符结束,每次读一行到buffer缓冲区,然后再做处理。整个大循环用while(!feof(fpFile)),fpFile为文件指针。feof()判断是否到了文件结尾。 fgets()函数的机理就是读取到换行符结束.
用每个回车符分行,每行第一个空格区分头和后面的数据 C++也有'\n'啊。。有什么不可以的??
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 链表查找 的文章

 

随机推荐