建立链表,帮帮萌新
  • 板块学术版
  • 楼主Kaidesu
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/3/31 12:08
  • 上次更新2023/11/5 01:20:30
查看原帖
建立链表,帮帮萌新
459090
Kaidesu楼主2021/3/31 12:08

这是题目:设键盘输入n个英语单词,输入格式为n, w1, w2, …,wn,其中n表示随后输入英语单词个数,试编一程序,建立一个单向链表,实现: 如果单词重复出现,则只在链表上保留一个。

为什么我输入不同的单词程序就会结束?

#include<bits/stdc++.h>

using namespace std;

typedef struct LNode{

	char word[20];

	struct LNode *next;

}LNode,*LinkList;

bool InitList(LinkList &L)

{

	L=(LNode*)malloc(sizeof(LNode));

	if(L==NULL)

		return false;

	L->next=NULL;

	return true;

}

int Cheak(LinkList &L,char ch[20]){

	LNode *q=L->next;

	while(q!=NULL&&strcmp(q->word,ch))

	{

		q=q->next;

	}

	if(q!=NULL)

	return 0;

	else

	return 1;

}

ListInsert(LinkList &L,int n,int &length)

{

	char ch[20];

	LNode *s,*r=L;

	while(n){

		scanf("%s",ch);

		s=(LNode*)malloc(sizeof(LNode));

		if(Cheak(L,ch))

		{

			strcpy(s->word,ch);

			r->next=s;

			r=s;

			length++;

		}

		n--;

	}

	r->next=NULL;

}

int main()

{

	int length=0;

	LinkList L;

	InitList(L);

	int n,i;

	cin>>n;

	ListInsert(L,n,length);

	LNode *p;

	p=L->next;

	for(i=1;i<=length;i++)

	{

		printf("%s ",p->word);

		p=p->next;

	}

}
2021/3/31 12:08
加载中...