我在 C 中有一个单链表程序。当我在 TC++ 上编译它时,它只有 2 个关于某些声明的错误(很好)。但是当我使用 GCC 在 Ubuntu 中编译它时,它有太多的错误。我为结构的成员创建了一个名为 NODE 的自定义数据类型,但 GCC 不会接受它。因为我使用了 typedef,所以有一个错误说 -
expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘struct’
我错过了什么规则?请帮我!
这是代码:
#include<stdio.h>
typdef struct node
{
int data;
NODE *next;
}NODE;
//Creation Of the Nodes with NULL pointers
NODE* createnewnode()
{
NODE* nn;
nn=(NODE*)malloc(sizeof(NODE));
if(nn==NULL)
{
printf("Insufficient Memory");
exit(0);
}
printf("Enter data");
scanf("%d",&nn->data);
nn->next=NULL;
return(nn);
}
// Creation Of the Links
NODE* createlinkedlist(NODE *hn, int n)
{
NODE *cn, *nn;
for(i=0;i<n;i++);
{
nn=createnewnode();
if(hn==NULL)
{
hn=nn;
}
else
{
cn->next==nn;
}
cn=nn;
return(hn);
}
//Display of The Data
void display(NODE *hn)
{
NODE *cn;
for(cn=hn;cn!=NULL;cn=cn->next)
{
printf("\t %d, "cn->data);
}
}
//Linear Searching
void search(NODE *hn, int n)
{
NODE *cn;
int i, x;
printf("Enter the data to be found");
scanf("%d",&x);
i=0;
while(i<n)
{
if(x==cn->data)
{
printf("Data found at %d",i+1);
break;
}
cn=cn->next;
i=i++;
}
}
void main()
{
int n;
NODE* hn=NULL;
printf("Enter the number of nodes to be created");
scanf("%d",&n);
createlinkedlist(hn,n);
display(hn);
}