#include<stdio.h>
#include<stdlib.h>
//Linked list implementation
typedef struct SLL{
int info;
struct SLL *link;
}Node;
Node *head=NULL;
// Node *rear=NULL;
void insert_rear(int x)
{
Node *temp=malloc(sizeof(Node));
Node *temp1=NULL;
if(temp==NULL) /* When malloc is unable to fetch Memory */
{
printf("\n Insufficient memory");
}
if(head==NULL) /* When there is no node created */
{
temp->info=x;
temp->link=head;
head=temp;
}
else
temp1=head;
while(temp1->link!=NULL)
{
temp1=temp1->link;
}
printf("\n Temp1=%d",temp1);
temp->info=x;
temp->link=NULL;
temp1->link=temp;
}
void insert_front(int x)
{
Node *temp=malloc(sizeof(Node));
if(temp==NULL) /* When malloc is unable to fetch Memory */
{
printf("\n Insufficient memory");
}
temp->info=x;
temp->link=head;
head=temp;
}
void display()
{
int i=0;
Node *temp=head;
printf("\n List Elements: \n ");
while(temp!=NULL)
{
printf(" %d) %d",++i,temp->info);
temp=temp->link;
printf("\t Link= %u \n",temp);
} printf("\n");
}
void main()
{
int x,choice,i;
printf("\n To insert at front enter 1 \n To insert at rear enter 2 \n To exit enter 4 \n");
while(choice!=4)
{
scanf("%d",&choice);
switch(choice)
{
case 1: printf("Enter an ELEMENT to be inserted at FRONT \n");
scanf("%d",&x);
insert_front(x);
display();
break;
case 2: printf("Enter an ELEMENT to be inserted at LAST \n");
scanf("%d",&x);
insert_rear(x);
display();
break;
}//End of switch
}//End of while
}//End of main
我正在編寫這個鏈表程序,並且我在insert_rear()
函數中提出了一個問題。 當我使用insert_front()
添加幾個元素,然後使用insert_rear()
與後面的現有節點一起添加元素時,程序工作得很好。 但是,當我嘗試使用insert_rear()
添加一個沒有任何現有節點的節點時,我的程序因某種原因不起作用。鏈接列表 - 插入新節點
所以我花了一些時間與我的程序搞亂,並刪除下面的代碼部分,看看我是否能夠添加一個新的節點,而無需任何現有節點:
else
temp1=head;
while(temp1->link!=NULL)
{
temp1=temp1->link;
}
printf("\n Temp1=%d",temp1);
temp->info=x;
temp->link=NULL;
temp1->link=temp;
}
和它的工作工作,即只與下面的代碼我能夠有任何現有節點
if(head==NULL) /* When there are no existing nodes created */
{
temp->info=x;
temp->link=head;
head=temp;
}
,但隨着其他條件我的代碼不能正常工作和程序崩潰之前,向其添加一個新的節點。 請幫我改正這個錯誤。我有一種感覺,我做了一些我無法找到的蠢事。
使用'{}'爲else塊。 – BLUEPIXY 2014-09-26 09:50:31
在發佈問題後,Yup意識到。 – 2014-09-26 09:57:29
沒關係,我只是意識到我做了一些愚蠢的事情,我沒有添加其他的括號。 – 2014-09-26 09:56:43