解题思路:
注意事项:
参考代码:
#include "stdio.h"
#include<stdlib.h>
typedef int Elemtype;
typedef struct LNode //结构定义
{
Elemtype data;
Elemtype data1;
struct LNode* next;
}LNode, * LinkList;
void create_H(LinkList& L) //头插法建立单链表(逆序)
{
//printf("INPUT:");
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
/*LNode* s;
int x;
scanf("%d", &x);
while (x != 9999)
{
s = (LNode*)malloc(sizeof(LNode));
s->data = x;
s->next = L->next;
L->next = s;
scanf("%d", &x);
}*/
}
void create_R(LinkList& L) //尾插法建立单链表(顺序)
{
printf("INPUT:");
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
LNode* s, * r = L;
int x;
scanf("%d", &x);
while (x != 9999)
{
s = (LNode*)malloc(sizeof(LNode));
s->data = x;
r->next = s;
r = s;
scanf("%d", &x);
}
r->next = NULL;
}
void printf_L(LinkList L)//打印单链表
{
LNode* p; p = L;
printf("单链表为:");
while (p->next != NULL)
{
p = p->next;
printf("%d ", p->data);
}
printf("\n");
}
Elemtype getelem(LinkList L, int i) //按序号查找
{
LNode* p; p = L;
int j = 0;
while (p != NULL && j < i)
{
p = p->next; j++;
}
//printf("%d", p->data);
return p->data;
}
int Locate_L(LinkList L, Elemtype e) //按值查找
{
LNode* p; p = L;
int j = 0;
while (p->data != e && p != NULL)
{
p = p->next;
j++;
}
return j;
}
int length(LinkList L) //单链表长度
{
LNode* p; p = L;
int j = 0;
while (p->next != NULL)
{
p = p->next;
j++;
}
return j;
}
void Delete_L(LinkList& L, int i) //删除给定序号节点
{
LNode* p; p = L;
int j = 0;
while (p != NULL && j < i - 1) //找到i-1个节点
{
p = p->next; j++;
}
LNode* q; q = p->next;
p->next = q->next;
free(q);
}
void Insert_L(LinkList& L, int i, Elemtype e) //第i个位置插入e
{
LNode* p; p = L;
int j = 0;
LNode* s;
s = (LNode*)malloc(sizeof(LNode));
s->data = e;
while (p != NULL && j < i - 1) //找到i-1个节点
{
p = p->next;
j++;
}
s->next = p->next;
p->next = s;
}
int A(LinkList L)
{
LNode* p; p = L;
int sum = 0;
p = p->next;
while (p)
{
sum += p->data;
p = p->next;
}
return sum;
}
int main()
{
LinkList L; LinkList LB;
create_H(L); create_H(LB);
//printf_L(L);
//printf("序号查找的值为:%d\n", getelem(L,4));
//printf("长度:%d\n", length(L));
//printf("值查找的序号为:%d\n", Locate_L(L, 4));
//Delete_L(L, 3);
//Insert_L(L, 3, 999);
//int n; scanf("%d", &n);
for (int i = 0; i < 10; i++)
{
int x;
scanf("%d", &x);
Insert_L(L, 1, x);
scanf("%d", &x);
Insert_L(LB, 1, x);
}
//printf_L(L);
//printf_L(L);
printf("%d+%di", A(L), A(LB));
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:689 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:642 |
【偶数求和】 (C++代码)浏览:709 |
这可能是一个假的冒泡法浏览:985 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:559 |
C语言考试练习题_排列 (C语言代码)浏览:721 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:662 |
众数问题 (C语言代码)浏览:830 |
C语言程序设计教程(第三版)课后习题6.3 (C++代码)浏览:957 |
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:586 |