还是请教一下链表
程序如下:(请问这样写算是双链吗?只列出部分) head的置空在main里进行struct dlist
{
int num;
float score;
struct dlist *left,*right;
}*head;
void new_record() // 输入新数据
{
struct dlist *p1,*newer;
newer=(struct dlist *)malloc(sizeof(struct dlist));
p1=head;
if(head==NULL)
head=newer;
else
{
p1=head;
while(p1->right!=NULL)
{
p1=p1->right;
}
p1->right=newer;
}
p1=newer;
printf("请输入学号:");
scanf("%d",&p1->num);
printf("请输入成绩:");
scanf("%f",&p1->score);
p1->right=NULL;
}
void insert() // 根据条件插入数据
{
struct dlist *p1,*p2,*p3;
p1=head;
p2=(struct dlist *)malloc(sizeof(struct dlist));
p2->left=p2->right=NULL;
printf("请输入学号:");
scanf("%d",&p2->num);
printf("请输入成绩:");
scanf("%f",&p2->score);
if(head==NULL)
head=p2;
else
{
while(p2->num>p1->num&&p1->right!=NULL)
{
p3=p1;
p1=p1->right;
}
if(p2->num<p1->num)
{
if(p1==head)
{
head=p2;
p2->right=p1;
p1->left=p2;
}
else
{
p2->right=p3->right;
p3->right->left=p2;
p2->left=p3;
p3->right=p2;
}
}
else
{
p1->right=p2;
p2->left=p1;
}
}
}
void del() //删除数据
{
int a;
struct dlist *p1,*p2,*p3;
if(head==NULL)
printf("信息表为空无法删除!\n");
else
{
p1=head;
printf("请输入你要删除的学号:");
scanf("%d",&a);
while(a!=p1->num &&p1->right!=NULL)
{
p3=p1;
p1=p1->right;
}
if(a==p1->num)
{
if(p1==head)
{
p2=p1;
head=p1->right;
}
if(p1->right!=NULL)
{
p2=p1;
p3->right=p1->right;
p1->right->left=p3;
}
else
{
p2=p1;
p1->left=NULL;
}
}
else
printf("没找到!\n");
}
if(p2!=NULL)
free(p2);
}
void display() // 显示数据
{
int i=0;
struct dlist *p;
if(head==NULL)
printf("信息表为空!\n");
else
{
p=head;
do
{
i=0;
printf("%d:%d的成绩为%f\n",i+1,p->num,p->score);
i++;
p=p->right;
}while(p!=NULL);
}
} 经鉴定.是双链.
P2,P3....OTL,能不能起个更适当的名字.P3就是一个临时存放结点,命名为pTmpNode,P2更是没有什么必要,完全可以去掉.用P1->left应该替代.
另外,Node中指针..left,right...汗.一般都是prior,next吧
不是我较汁,天下大事,必成于细.开始没有一个好的命名规范和好的编程风格习惯,对以后的影响是极大的...T.T换本书吧.. 引用第1楼duzhi5368于2007-07-06 10:23发表的:
经鉴定.是双链.
P2,P3....OTL,能不能起个更适当的名字.P3就是一个临时存放结点,命名为pTmpNode,P2更是没有什么必要,完全可以去掉.用P1->left应该替代.
另外,Node中指针..left,right...汗.一般都是prior,next吧
不是我较汁,天下大事,必成于细.开始没有一个好的命名规范和好的编程风格习惯,对以后的影响是极大的...T.T换本书吧.. 你说的那本书已经在网上订购了,还没到手 恩,多买点,以后找你借书去方面 够用就行了。IT类书特贵,什么都买,要花去的铁能砸死人的。
ps.
借书去“方便”?
"方便","方便","方便"啊~ 我讨厌“便”“便”……
页:
[1]