Jump to content
alexkbw

armazenar uma palavra em uma lista encadeada

Recommended Posts

ola, preciso de ajuda

estou aprendendo C++ 

e nao consigo criar uma lista encadeada que armazene palavras

segue o codigo:

 

// listaEncadeada.cpp : Este arquivo contém a função 'main'. A execução do programa começa e termina ali.

#include "pch.h"
#include "conio.h"
#include "string"
#include<iostream>

using namespace std;
struct lista
{
	char c;
	int n;
	struct lista*p;
};
struct lista * inserirn(char,int);
struct lista * prim;

void inserir()
{
	char c;
	int n;
	printf("\ninforme uma cor :");
	scanf_s("%s", &c);
	printf("\ninforme um numero:");
	scanf_s("%d", &n);
	
	inserirn(c,n);
}

struct lista * inserirn(char c,int n)
{
	struct lista *novo, *aux;
	novo = (struct lista*)malloc(sizeof(struct lista));
	if (novo!=NULL)//caso nao aja memoria
	{
		novo->n= n;
		novo->c = c;
		novo->p = NULL;
		if (prim==NULL)
		{
			prim = novo;
		}
		else
		{
			aux = prim;
			while (aux->p != NULL)
			{
				aux = aux->p;
			}
				aux->p = novo;
		}
	}
	return novo;
}
int main()
{
	prim = NULL;
	inserir();
	inserir();
	inserir();
	
	_getch();
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By gabriel1303
      É possível verificar a ocorrência de um caractere em negrito em uma planilha do Excel utilizando c/c++?
    • By kalth
      Olá

      Então, estou fazendo uns cursos e exercícios de C# com o VS2019, abrindo e criando projetos normalmente, mas depois que meu PC desligou com uma queda de energia não consigo mais criar projetos.

      Sei que não deve ter relação, mas foi curioso. Já restaurei os padrões no Visual Studio Installer mas mesmo assim não consigo criar nada.

      O erro é: "Referência de objeto não definida para uma instância de objeto"

      Já vi vários tópicos sobre esse erro mas sempre o erro já era dentro do VS, alguma coisa no código, o meu nem chega a abrir...

      Aparece essas duas janelas do print, em sequência:


    • By ArchTGS
      #include <iostream>
      #include <locale>
      using namespace std;
      int main(){
          setlocale(LC_ALL,"ptb");
          int idade;
          char *categoria;
          cout<<"informe a idade do participante: ";
          cin>>idade;
          while(idade!=-1){
              if(idade>=7 && idade<=12){
                  categoria="INFANTIL";
              }
              else if(idade>12 && idade<=17){
                  categoria="JUVENIL";
              }
              else if(idade>17 && idade<=49){
                  categoria="ADULTO";
              }
              else if(idade>=50){
                  categoria="SÊNIOR";
              }
              else{
                  cout<<"Infelizmente o candidato ainda não pode participar!";
              }
              cout<<"O participante está na categoria "<<categoria << " \n ";
              cout<<"Informe a idade do participante: ";
              cin>>idade;
          }
      }
      então pessoal esse é meu codigo, está funcionando bonitinho, porém quando eu faço o teste da ultima opção do encadeamento else, que está em vermelho, aparece o resto do codigo também, o que está em verde, tem alguma maneira de fazer essas ultimas mensagens não aparecerem? não quero ter que colocar saídas(cout) em todos os if's e elses.
      Obs: to aprendendo peguem leve.
    • By RickSilva
      Tenho que criar um código que imprime os 5 numeros anteriores, por exemplo: se o usuario digitar 30, tem que ser impresso 29, 28, 27, 26, 25. Eu conseguir criar um código, porem começa do numero atual, se eu digito 30 começa do 30 e não é isso que eu quero. Eu consigo fazer isso tranquilo com um for, mas preciso que seja com recursividade. O codigo que criei foi esse: 
       
      #include <stdio.h> long int number(int num, int y){ if(num > y-5){ printf(" %d ", num); number(num - 1, y); } else{ return 0; } } int main() { int N; int y; printf("Digite um numero inteiro positivo: "); scanf("%d", &N); y = N; number(N, y); return 0; }  
    • By juliaKrunker
      1- O comando typedef pode ser utilizado para criar novos comandos, ou simplesmente novas formas de escrever
      determinados comandos em linguagem C. Por exemplo, toda vez que você quiser criar uma variável do tipo struct
      declarado acima, terá que escrever o nome completo do tipo, isto é struct lista. Usando o comando typedef, defina um
      tipo alternativo, chamado Lista, que possa ser usado em lugar de struct lista.

      2-  Usando o tipo Lista que você criou na questão 3, declare uma variável chamada myList que possa ser utilizada para
      construir uma lista encadeada.
       
      3- (0,5) Usando o tipo Lista que você criou na questão 3, declare uma variável chamada novo que possa ser utilizada para criar
      um novo elemento para a lista declarada na questão 4.

      4- Escreva uma linha de código que aloque espaço na memória para a variável novo declarada na questão 5, de forma
      que a variável possa ser utilizada para inserir um novo elemento na lista myList declarada na questão 4.

      5 -Considerando a variável myList declarada na questão 4 e a variável novo declarada na questão 5 e alocada na questão
      6, atribua os valores 1 para o atributo id e 9.1 para o atributo valor e insira-a na lista myList.
       
      6- O trecho de código apresentado a seguir, refere-se a uma função que receberá como parâmetro um ponteiro para
      uma lista do tipo Lista e deverá calcular e retornar a média dos valores existentes na lista. Escreva o corpo da função.

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.