#include <iostream>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <malloc.h>
//定义结构体,链表中的节点
typedef struct student
{
int data;
struct student* next;//双向链表,指向后一个节点
struct student* pre;//指向前一个节点
}dnode;
typedef struct student* pnode;
//创建节点,返回节点指针
//输入:节点的值
//输出:节点的指针
pnode createNode(int n)
{
pnode p=NULL;
p=(pnode)malloc(sizeof(dnode));
p->next =NULL;
p->pre = NULL;
p->data =n;
return p;
}
//在链表中按data升序插入节点
//输入:链表头指针,节点指针
//输出:链表头指针
pnode insert(pnode head,pnode temp)
{
pnode p=NULL;
pnode k=NULL;//
if(NULL==temp)//如果插入空节点,直接退出返回头节点指针
{
return head;
}
if(NULL==head)//如果头指针为空,
{
head = temp;//节点就作头
}else
{
if(head->data > temp->data)
{//如果头指针的值大于插入节点的值
//节点插入到最前面作为头节点
temp->next = head;
head->pre = temp;
hea
双向链表排序
最新推荐文章于 2024-09-04 19:46:08 发布
该博客介绍了如何创建和排序双向链表。通过定义结构体`student`,创建节点并实现升序插入功能。博客提供了创建链表、计算链表长度、打印链表以及在链表中插入节点的函数实现。
摘要由CSDN通过智能技术生成