利用实验建立一个有序的单链表L={5,12,14,18,23,34}。让后将元素15插入到单链表中,

要求单链表是有序的单链表
最后依次显示当前链表中的元素
单链表的结点结构除数据域外,还含有一个指针域。用C语言描述结点结构如下:
    typedef int datatype;
typedef struct node
    { datatype data;   //数据域
      struct node *next; //指针域
     }slnode;
    注意结点的建立方法及构造新结点时指针的变化。构造一个结点需用到C语言的标准函数malloc(),如给指针变量p分配一个结点的地址:
p=(slnode *)malloc(sizeof(slnode));该语句的功能是申请分配一个类型为slnode的结点的地址空间,并将首地址存入指针变量p 中。当结点不需要时可以用标准函数free(p)释放结点存储空间,这时p为空值(NULL)。

第1个回答  2012-03-06
#include <iostream>
#include <stdio.h>
typedef struct LNode{

int data;
LNode *next;
}*LinkList;
void InsertList(LinkList &L,int i)//顺序插入节点
{
LNode *p=(LinkList)malloc(sizeof(LNode)),*node,*p1;
p->data=i;
p1=L->next;
if(L->next==NULL)
{
p->next=L->next;
L->next=p;
}
else
{
while(p1&&p1->data<i)
{
node=p1;
p1=p1->next;
}
p->next=node->next;
node->next=p;
}
}
void ReadNode(LinkList &L) //读结点
{
LNode *p;
p=L->next;
while(p)
{
std::cout<<p->data<<"\n";
p=p->next;
}
}
main()
{
LinkList list1=(LinkList)malloc(sizeof(LNode));
list1->next=null;
InsertList(list1,5);
InsertList(list1,12);
InsertList(list1,14);
InsertList(list1,18);
InsertList(list1,23);
InsertList(list1,34);
InsertList(list1,15);
ReadNode(list1);
}追问

不好意思,能根据补充要求编写吗?谢谢啦

本回答被提问者采纳
相似回答