关于链表程序的补充完整
#include <stdio.h>
#include<stdlib.h>
struct Data
{
int num;
struct Data *next;
};
struct Data* Creatlist() //输入创建链表,顺序输入,不排序
{
int number;
struct Data *p,*head=NULL,*tail=NULL;
printf("请输入要插入的数字,按'-1'结束\n");
scanf("%d",&number);
while(number>=0)
{
p=(struct Data *)malloc(sizeof(struct Data));
p->num=number;
p->next=NULL;
if(head==NULL)
head=tail=p;
else
{
tail->next=p;
tail=p;
}
scanf("%d",&number); //输入回车
}
return head;
}
void print(struct Data *head) //输出链表
{
while(head!=NULL)
{
printf(“%d->”,head->num);
head=head->next;
}
printf(“NULL”);
}
int lenth(struct Data *p) //计算结点长度
{
int i=0;
for(int j=0;p!=NULL;j++)
{
i++;
p=p->next;
}
return(i);
}
}
struct Data* find(struct Data *p,int key) //查找指定结点
{
}
struct Data* delt(struct Data *p,int key) //删除指定结点
{
}
struct Data* inserth(struct Data *p,int key) //在链表头部插入指定元素
{
}
struct Data* insertt(struct Data *p,int key) //在链表尾部插入指定元素
{
}
struct Data* insertm(struct Data *p,int key) //在链表中间插入指定元素
{
}
void deleted(struct Data *p) //释放链表
{
}
void main()
{
struct Data *q;
q = Creatlist(); //q为实参,指向头结点
print(q); //输出初始化链表
printf("链表元素个数:%d\n",lenth(q)); //输出链表长度
find(q,6); //查找第一个数据为6的结点
q=delt(q,5); //删除第一个数据为5的结点
print(q);
//q=inserth(q,0); //在头结点插入元素0
//q=insertt(q,0); //在尾结点插入元素0
q=insertm(q,3); //在链表中间插入3,在第一个比3大的数后面插入
print(q);
deleted(q); //释放链表
}