问题描述:
给定一个整数序列:
56, 45, 32, 83,43,….
每个整数作为链表中的一个节点,构造一个从小到大排序的链表。
对于给定的整数 80,返回该整数是否在链表中。
提示:
需要实现以下功能:
1.链表的构造
2.链表的插入
3.链表的查找
4.链表空间的释放。
#include <stdio.h>
#include <stdlib.h>typedef int elemtype;
typedef struct lnode{
elemtype data;
struct lnode *next;
}List;
main()
{List *p,*s,*t;
t=(List*)malloc(sizeof (List));
p=(List*)malloc(sizeof (List));
scanf(“%d”,&p->data);
s=(List*)*malloc(sizeof (List));
While(1)
scanf(“%d”,&s->data);
s-next=Null;
If ((s->data)<(p->data))
{s-next=p;
t=p;
p=s;
t=s;
}
else {
t=p;
if p->next=!Null
{
while((s->data)>(p->next->data))
{p=p->next;} s-next=p-next;
p-next=s;
p=t;}
else
p-next=s;
}
给定一个整数序列:
56, 45, 32, 83,43,….
每个整数作为链表中的一个节点,构造一个从小到大排序的链表。
对于给定的整数 80,返回该整数是否在链表中。
提示:
需要实现以下功能:
1.链表的构造
2.链表的插入
3.链表的查找
4.链表空间的释放。
#include <stdio.h>
#include <stdlib.h>typedef int elemtype;
typedef struct lnode{
elemtype data;
struct lnode *next;
}List;
main()
{List *p,*s,*t;
t=(List*)malloc(sizeof (List));
p=(List*)malloc(sizeof (List));
scanf(“%d”,&p->data);
s=(List*)*malloc(sizeof (List));
While(1)
scanf(“%d”,&s->data);
s-next=Null;
If ((s->data)<(p->data))
{s-next=p;
t=p;
p=s;
t=s;
}
else {
t=p;
if p->next=!Null
{
while((s->data)>(p->next->data))
{p=p->next;} s-next=p-next;
p-next=s;
p=t;}
else
p-next=s;
}
{
INT Value;
_ListTypeStr *Next;
}_ListType;_ListType *ListHeader=NULL;/**添加链表项**/
void List_Add(INT Value)
{
if(ListHeader==NULL)
{
ListHeader=(_ListType *)malloc(size(_ListType));
ListHeader.Value=Value;
ListHeader.Next=NULL;
}
else
{
_ListType * Temp;
Temp=ListHeader.Next;
while(Temp!=NULL)
{
Temp=Temp.Next;
}
Temp=(_ListType *)malloc(size(_ListType));
Temp.Value=Value;
Temp.Next=NULL;}
}/**创建链表**/
void List_Creat(void)
{
INT StarValue[NUM]={56, 45, 32, 83,43,...};
INT Index;
/**对StarValue进行排序(略)**/
for(Index=0;Index<sizeof(StarValue)/sizeof(StarValue[0]);Index++)
{
List_Add(StarValue[Index]);
}
}/**暂停,肚子饿了去吃晚饿先**/