
1个回答
展开全部
//算法设计题:单循环链表中删除表中所有数值相同的多余元素
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define OK 1
#define Status int
typedef struct LNode
{
int data;
LNode *next;
}LNoed,*LinkList;
Status CreateList_L(LinkList &L)
{
int n,i;
LinkList p,q;
printf("input the length of the List\n");
scanf("%d",&n);
printf("input the data\n");
L=(LinkList)malloc(sizeof(LNode));
q=L;
scanf("%d",&L->data);
//L->next=NULL;
for(i=2;i<=n;i++)
{
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
q->next=p;
//p->next=NULL;
q=p;
}
p->next=L;
return OK;
}
Status OutList_L(LinkList L)
{
printf("the List is\n");
LinkList p;
p=L;
do
{
printf("%4d",p->data);
p=p->next;
}while(p!=L);
printf("\n");
return OK;
}
Status ListDelete_L(LinkList &L)
{
LinkList q,r,p,p1;
q=L;
do
{ p=q;
p1=p->next;
while(p1!=L)
{
if(q->data==p1->data)
{ r=p1;
p1=p->next=r->next;
free(r);
}
else
{
p1=p1->next;
p=p->next;
}
}
q=q->next;
}while(q!=L);
return OK;
}
void main()
{
LinkList La;
CreateList_L(La);
OutList_L(La);
ListDelete_L(La);
OutList_L(La);
}
//朋友,这是我花了一个小时写出来的,我觉得用双向链表其实更好做。记住一定要自己想哟,上面的程序仅供参考!一定要在VC中运行哟,因为&是C++里面的东西。不过你也可以改用指针。
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define OK 1
#define Status int
typedef struct LNode
{
int data;
LNode *next;
}LNoed,*LinkList;
Status CreateList_L(LinkList &L)
{
int n,i;
LinkList p,q;
printf("input the length of the List\n");
scanf("%d",&n);
printf("input the data\n");
L=(LinkList)malloc(sizeof(LNode));
q=L;
scanf("%d",&L->data);
//L->next=NULL;
for(i=2;i<=n;i++)
{
p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
q->next=p;
//p->next=NULL;
q=p;
}
p->next=L;
return OK;
}
Status OutList_L(LinkList L)
{
printf("the List is\n");
LinkList p;
p=L;
do
{
printf("%4d",p->data);
p=p->next;
}while(p!=L);
printf("\n");
return OK;
}
Status ListDelete_L(LinkList &L)
{
LinkList q,r,p,p1;
q=L;
do
{ p=q;
p1=p->next;
while(p1!=L)
{
if(q->data==p1->data)
{ r=p1;
p1=p->next=r->next;
free(r);
}
else
{
p1=p1->next;
p=p->next;
}
}
q=q->next;
}while(q!=L);
return OK;
}
void main()
{
LinkList La;
CreateList_L(La);
OutList_L(La);
ListDelete_L(La);
OutList_L(La);
}
//朋友,这是我花了一个小时写出来的,我觉得用双向链表其实更好做。记住一定要自己想哟,上面的程序仅供参考!一定要在VC中运行哟,因为&是C++里面的东西。不过你也可以改用指针。

2025-03-12 广告
以下是虚拟筛选的简要流程图说明:1. **调研靶点**:确认是否有参考药物与结合模式信息。2. **建立模型**:基于靶点蛋白结构,参考已有药物结合信息或预测药物结合模式。3. **选择库源**:从多样性化合物库、上市药物分子库等中挑选合适...
点击进入详情页
本回答由MCE 中国提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |