#include <stdlib.h>
#define FALSE 0
#define TRUE 1
// insertNode2:把newValue的值插入到递增排序的链表中,正确返回TRUE,错误返回FALSE
int insertNode2(Node **nextp, int newValue)
{
Node *newNode // 新节点指针
Node *current // 当前节点指针
current = *nextp // 最初当前节点为nextp指针指向的节点
// 查找新插入节点的位置
while (current != NULL && current->value < newValue)
{
nextp = ¤t->next
current = current->next
}
// 为新节点分配内存
newNode = (Node *)malloc(sizeof(Node))
if (newNode == NULL)
return FALSE
newNode->value = newValue
// 统一了插入的步骤。即:每次插入,都是前一个指针指向新节点,新节点指向下一个节点
*nextp = newNode
newNode->next = current
return TRUE
}
main函数
[cpp] view plain copy
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "sll_node.h"
int insertNode(Node **rootp, int newValue)
int insertNode2(Node **nextp, int newValue)
int main()
{
srand(time(0))
Node *head = (Node *)malloc(sizeof(Node))
head->next = NULL
for (int i = 0 i < 5 i++)
{
int temp = rand() % 50
printf("%d\n", temp)
//insertNode(&head,temp)
insertNode2(&head,temp)
}
Node *p = head->next
while (p != NULL)
{
printf("%d\n", p->value)
p = p->next
}
getchar()
getchar()
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)