リンクリストプログラムの初めに簡単な挿入を作成できましたが、今はリンクリストの最後に挿入するのに苦労しています。リンクリストプログラムの最後に簡単な挿入をしようとしています。小さな問題が必要なヘルプ
プログラムはユーザーからの値を取ることができるようですが、出力リストは正しく表示されていません。私を助けてくれませんか?
可能であれば私は初心者であり、完全に異なる方法を理解することはできませんので、私のプログラムの行に沿ってください。
論理i- リストが空の場合は、最初に値を挿入します。リストが空でない場合は、次の値がNULLになるまでリストに沿って移動し、NULLの代わりに新しい値を入力します。
#include<iostream>
using namespace std;
struct node
{
int data;
node *next;
};
node *start=NULL;
void insertend(int x)
{
node* temp=new node;
if(start==NULL)
temp->data=x;
else
{
while(temp!=NULL)
{
temp=temp->next;
}
temp->next=x;
}
}
void display()
{
node* disp=new node;
while(disp!=NULL)
{
cout<<disp->data<<endl;
disp=disp->next;
}
}
int main()
{
int x;
char ch;
do
{
cout<<"Enter data";cin>>x;
cout<<endl;
insertend(x);
cout<<"Do you want to continue?(y/n)";cin>>ch;
cout<<endl;
}while(ch=='y');
cout<<"Your list:"<<endl;
display();
}
あなたは、 'start'をリストの最初の要素に設定する' insertend() 'の正確な場所を指すことができます。また、あなたのプログラムで、リストが空でなければ 'data'を初期化する正確な場所を指すことができます。これらの質問に答えることができれば、コードを修正するために知る必要があることをすべて知っておく必要があります。あなたがこれを理解しようとしている間、コンピュータプログラミングのルール#1を覚えておいてください。コンピュータは、あなたが何をしたいのではなく、あなたがすることを常に正確に行います。 「使用したロジック」は、コードが実際に行うものと一致しません。 –
コンピュータプログラミングのルール#2:コンパイラからの警告メッセージを無視しないでください。コンパイラがメッセージを表示する方法を知っているかどうかを確認したいからではなく、その理由があるため、コンパイラは警告メッセージを発行します。コンパイラがまだプログラムをコンパイルしてしまったからといって、プログラムが正しいとは限りません。あなたのコンパイラからの警告メッセージには理由があります。 –
スタックオーバーフローは学生自宅の仕事を解決するサイトではありません。 – Oliv