- 在线时间
- 428 小时
- 最后登录
- 2017-2-22
- 注册时间
- 2011-9-18
- 听众数
- 8
- 收听数
- 0
- 能力
- 20 分
- 体力
- 6079 点
- 威望
- 110 点
- 阅读权限
- 200
- 积分
- 3684
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 759
- 主题
- 60
- 精华
- 0
- 分享
- 0
- 好友
- 40
TA的每日心情 | 开心 2017-2-22 14:21 |
|---|
签到天数: 271 天 [LV.8]以坛为家I
群组: 2014年美赛冲刺培训 群组: 物联网工程师考试 群组: 2013年电工杯B题讨论群 群组: 物联网工程师培训 群组: 2013电工杯A题讨论群组 |
2。4节需要用链表计算多项式的加法,因此,熟悉结构体是非常必要的。
+ J# e4 z. `1 N2 V4 U6 r% q4 m4 F+ d" b2 L7 H
#include<stdio.h>
* h9 y4 e, x# |$ u3 I4 @3 \ #include<stdlib.h> R3 @% \; @' ~* l3 }" T; T
U8 s$ E+ z9 z1 Y+ N! Q7 X struct slist
( I' x$ J+ S9 K; P. O {
) [! X* _* T2 l7 K2 ~3 s ? int data;) w v- n, a) s, r2 O% B( L
struct slist *next;( Z0 y$ A7 f& _1 Y W
};
5 l8 _, B' z- e0 j4 V. V. ? typedef struct slist SLIST;
; \6 [6 R8 v. J# [8 |9 r6 P
! H$ p. K" {2 A7 i2 @! Y SLIST *creat_slist1()1 \/ l% P4 q0 P. X+ [# N7 o
{
0 e. T. E8 Q/ Z/ g; C0 ~ int c;
& C3 ?. D; [! }( ? SLIST *h,*s,*r;9 ?3 m8 y+ r; s' T9 n$ E: }/ \
h=(SLIST *)malloc (sizeof(SLIST) ); //生成头结点
# ~8 ?7 x4 S; Q/ y' Z N. E/ ^r=h;
) E" t0 ]: I8 ~6 Z9 }# C scanf("%d",&c);
) d! E# A/ V. d6 q* g while (c!=-1) //当输入的c为-1时,代表输入结束
1 w: V U7 B( s, k+ `; b$ l; d{& h, V1 @+ ^0 [; Q$ q
s=(SLIST *)malloc(sizeof(SLIST) ); //生成一个新结点
) m# E) j, C3 s, T2 Fs->data=c;' X; l0 E" o: F4 I3 c8 e; u4 V
r->next=s;
2 ]8 G! x' U5 ?. J7 s7 h- @3 e r=s;
: b+ v* W1 P- i9 X# P scanf("%d",&c);, X5 x% c% V2 t. J% E
6 k; z9 h5 W, r( ], d& N% J, Q
}
+ h b/ u. I$ E& `( ` r->next ='\0';8 F+ @% @8 l T( X
return h; y( y' l" B, I7 x/ v: r$ {
}
! u J% m5 Y6 { k D: K
/ f. C- }8 t- H0 t$ M4 W& J+ D/**/ //想加入一个函数,在刚才输入链表各个数值之后,再输出这些值。如何写呢?) \# _. `( z& `: Z
int printf_list(SLIST *h); T3 }7 H6 U7 w. _1 J
{
8 U1 {" H+ U, f0 i" a# E //while (!h->next )//教材上经常使用这个语句作为h->next是否为空指针的判断语句,但在VC++里边,这一句与下边一句效果不同,具体原因还不清楚$ t& l1 Q7 A) a# [: V: Z
while (h->next!=0 )
6 R4 c, b$ G' z# S( U0 R9 G. ` {/ U5 K3 N" N9 [; m5 `
printf("%d\n",h->next->data );! s% s' A1 O' H7 y# W U& i
h=h->next ;2 a0 x" C) `+ F0 z, q) e$ @; b
}
" F3 }' d3 B4 ~4 g. Q return 1;
; r0 a4 |; N4 {; k, @7 Q% N }: D5 x7 X6 I8 k v/ V) E
/**/
( ?" }5 X1 d& u' U2 H2 z void main()
; C+ Y$ T- G/ ^& b" W* [ { SLIST *head;
2 v; j& ~0 b8 m# q! ]) e0 x
. q( g* K; n" F! o6 r- l9 shead=creat_slist1(); //调用链表建立函数,得到头结点地址
4 v% b) j5 s9 _ o$ T) o, j2 vprintf_list(head);
, F4 f* O3 ~6 _7 P6 W7 a' l( M }0 [' R- Q7 X& p. Q; }1 p
' C7 m3 ]; V% I1 P. t2 F, @; r# `6 C% W8 C1 W( T7 W
此函数功能为:输入链表中的数,然后依次输出。 |
|