【发布时间】:2015-02-14 22:08:17
【问题描述】:
我想创建一个链表。 用户添加数字,想法是数字按降序插入到列表中。
这是我所做的,但是在重新排列时,它只是订购第一个数字......
int addInputNumber(numberList **node){
numberList *temp;
int userInput;
temp = (numberList*)malloc(sizeof(numberList));
//Memory Check
if ( temp == 0 )//out of memory, return 0
return 0;
//Get the users input
printf("Give me a Number!\n");
scanf("%d",&userInput);
//Add it to the list.
temp->numbero = userInput;
///Link to the list.
temp->next = *node;
*node = temp;
//Lets cycle through the list.
numberList *temp2;
int helpNumber;
temp2 = *node;
//Rearrange the list.
while(temp2 != 0){
if(temp->numbero < temp2->numbero){
//Switch position..
helpNumber= temp2->numbero;
temp2->numbero = temp->numbero;
temp->numbero = helpNumber;
temp2 = *node;// If we change number, we must cycle from the beginning AGAIN.
}//eof if
temp2 = temp2->next;
}//eof while
return 0;
}//eof addNUmber function.
这是结构以防万一:
typedef struct dynamicNumberList {
int numbero;
struct dynamicNumberList *next;
}numberList;
我有 2 个简单的问题。
为什么只排第一个数字?
此列表向左侧添加了一个空格(视觉上),我怎样才能使它在右侧添加一个空格?
【问题讨论】:
标签: c arraylist linked-list structure