阅读背景:

对一个存储学生信息的单向链表,按照学号升序对链表进行排序,每个节点包含了一个学生ID

来源:互联网 
1.	问题描述: 
(1)建立单向链表,每个结点包括:学号,姓名,性别。(2)按照学号对该链表进行升序排序,要求采用冒泡法,而后进行输出。在主函数中分别调用创建、排序和输出函数。2.	问题的解决方案:根据问题描述,首先创建链表,不仅要给各个结点输入数据,更重要的是要建立起前后结点相互联结的关系。可同时设置3个指针变量,head、p、q,它们都是结构类型的指针,分别代表表头、新建结点和表尾结点。使用new操作符开辟新的存储空间,用来存放新结点。而后对该链表进行升序排列,排序时指针要进行互换,没有数据交换时进行结点的访问。四、主要技术问题的描述根据三的分析,主要问题在于链表的创建以及排序过程中指针的指向。如需要创建N=5个结点,if(i==1)    head=p1;     //将链表中第一个新建结点作为表头elsep2->next =p1;p2=p1;p1=new(STUDENT);cin>>p1->stu_number >>p1->name >>p1->sex >>p1->age;    p2->next =NULL;   //最后一个结点的next成员不指向任何结点排序时,设置三个结构指针m、s、p来记录位置,m=head;	p=head->next;	s=p->next;若不需要交换,指针依次向后移动:m=p; p=s;s=s->next;如果需要进行交换,则:p->next=s->next;     s->next=p;m->next=s;m=s;s=p->next;将两个非递减的链表合并成一个新的非递减的链表。(1)建立单向链表,每个结点包括:学号,姓名,性别。(2)按照学



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: