c语言经典笔试题(非常全)(14)
if( a[j]
} }
链表问题汇总
178写一函数creat, 用来建立一个动态链表,各结点数据由键盘输入。 struct student { };
student *creat (void) { }
179,写一print函数,将链表中的各数据遍历输出 void print(student *head ) {
student *p; student *head;
student *p1=null,*p2=null; int n=0;
p1=p2=new student; cin>>p1->num>>p1->score; head=null; while(p1->num !=0) { }
p2->next =NULL; return (head);
n=n+1;
if(1==n) head=p1; else p2->next=p1; p2=p1;
p1= new student;
cin>>p1->mum>>p1->score; long num; float score; stuent *next;
}
cout<<\p=head; if(head!=NULL) do {
cout<
}while(p!=NULL)
180.写一del函数,用来删除动态链表中,指定的结点数据 void *del(student *head, long num) { }
181 写一函数insert,用来向动态链表插入一结点 Student *insert(student *head, student *stud) {
student *p0 ,*p1, *p2; p1=head; p0=stud; if(head == NULL) {
head=p0; student *p1,*p2; if(head==NULL) {return (head);} p1=head;
while(num!=p1->num && p1->next !=NULL) { }
if(num == p1->num) { } else
cout<<\return(head);
if(p1==head) else
p2->next=p1->next;
cout<<\n=n-1;
head=p1->next;
p2=p1; p1=p1->next;
}
} else { }
p0->next=NULL;
while((p0->num >p1->num) && (p1->next!=NULL) ) { }
if(p0->num <= p1->num) { } else { }
p1->next=p0; p0->next=NULL;
if(head ==p1) else
p2->next=p0; p0->next=p1;
head=p0; p2=p1; p1=p1->next;
n=n+1; return(head);
182 链表题:一个链表的结点结构 struct Node { int data ; Node *next ; };
typedef struct Node Node ;
(1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel)
Node * ReverseList(Node *head) //链表逆序 {
if ( head == NULL || head->next == NULL ) return head; Node *p1 = head ; Node *p2 = p1->next ;
Node *p3 = p2->next ; p1->next = NULL ; while ( p3 != NULL ) {
p2->next = p1 ; p1 = p2 ; p2 = p3 ; p3 = p3->next ; }
p2->next = p1 ; head = p2 ; return head ; }
(2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)
Node * Merge(Node *head1 , Node *head2) {
if ( head1 == NULL) return head2 ; if ( head2 == NULL) return head1 ; Node *head = NULL ; Node *p1 = NULL; Node *p2 = NULL;
if ( head1->data < head2->data ) {
head = head1 ; p1 = head1->next; p2 = head2 ; } else {
head = head2 ; p2 = head2->next ; p1 = head1 ; }
Node *pcurrent = head ;
while ( p1 != NULL && p2 != NULL) {
if ( p1->data <= p2->data ) {
pcurrent->next = p1 ; pcurrent = p1 ; p1 = p1->next ;
} else {
pcurrent->next = p2 ; pcurrent = p2 ; p2 = p2->next ; } }
if ( p1 != NULL ) pcurrent->next = p1 ; if ( p2 != NULL ) pcurrent->next = p2 ; return head ; }
(3)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。 (Autodesk) 答案:
Node * MergeRecursive(Node *head1 , Node *head2) {
if ( head1 == NULL ) return head2 ; if ( head2 == NULL) return head1 ; Node *head = NULL ; if ( head1->data < head2->data ) {
head = head1 ;
head->next = MergeRecursive(head1->next,head2); } else {
head = head2 ;
head->next = MergeRecursive(head1,head2->next); }
return head ; }
183.利用链表实现将两个有序队列A和B合并到有序队列H中,不准增加其他空间。 请提供全一点的程序
以升序为例:
while(a != NULL && b!= NULL) {
if (a->data < b->data)
…… 此处隐藏:764字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




