带头结点和不带头结点的单连表的第一个元素分别是怎么取得的,最好写出算法……
答案:3 悬赏:0
解决时间 2021-11-15 04:42
- 提问者网友:敏感魔鬼
- 2021-11-14 11:50
带头结点和不带头结点的单连表的第一个元素分别是怎么取得的,最好写出算法……
最佳答案
- 二级知识专家网友:努力只為明天
- 2021-11-14 13:18
假设 struct node{
int data;
struct node *nexe;}
带头结点时:第一个元素就是 L->next->data;
不带头结点时;第一个元素就是 L->data;
(其中L是指向第一个节点的指针)
int data;
struct node *nexe;}
带头结点时:第一个元素就是 L->next->data;
不带头结点时;第一个元素就是 L->data;
(其中L是指向第一个节点的指针)
全部回答
- 1楼网友:情窦初殇
- 2021-11-14 14:56
带头结点 第一个元素就是L->next
不带头结点 第一个元素就是L
- 2楼网友:末路丶一枝花
- 2021-11-14 13:55
举手之劳,帮你弄了。程序就是算法,既然是顺序表,就按顺序查找就可以了。你要用二分法查找?那也可以啊。明天来写。
程序的数据可以根据实际情况更改,注意程序中的人名第一个字母这里为大写。一个完整的c程序如下,在win-tc和dev-c++下已运行通过。
#include
#include
#include
#include
#define num 4
struct chain
{
char name[20];
char city[20];
char sex[10];
char age[10];
char job[10];
struct chain *next;
};
struct chain *create();
struct chain *sequelseach(struct chain *head,char name[]);
void print_data(struct chain *point);
struct chain datas[num]=
{
"sun","wuhan","male","24","student",null,
"tom","beijing","male","31","doctor",null,
"marry","shanghai","female","19","teacher",null,
"willing","tianjing","female","21","worker",null
};
int main(void)
{
struct chain *head;
struct chain *p;
char name[30];
head=create();
printf("please input the name:\n");
scanf("%s",name);
p=sequelseach(head,name);
print_data(p);
getch();
return 0;
}
struct chain *create()
{
struct chain *head, *tail, *p;
int i;
head=tail=null;
printf("put the datas into the list.\n");
for(i= 0;i < num; i++)
{
p=(struct chain *)malloc (sizeof (struct chain));
strcpy(p->name, datas[i].name);
strcpy(p->city,datas[i].city);
strcpy(p->sex,datas[i].sex);
strcpy(p->age,datas[i].age);
strcpy(p->job,datas[i].job);
p->next=null;
if(head==null)
head=tail=p;
else
tail=tail->next;
tail->next=p;
}
return head;
}
struct chain *sequelseach(struct chain *head, char name[])
{
struct chain *temp;
temp=head;
for(temp=head;temp!=null;)
{
if(strcmp(temp->name,name)==0)
break;
else
temp=temp->next;
}
if(temp ==null)
printf("no found!\n");
return temp;
}
void print_data(point)
struct chain *point;
{
if(point==null)
return;
printf("results:\n");
printf(" name:%s\n",point->name);
printf(" city:%s\n",point->city);
printf(" sex:%s\n",point->sex);
printf(" age:%s\n",point->age);
printf(" profession:%s\n",point->job);
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯