简单静态、动态链表的建立
来源:互联网 发布:c语言unsigned long 编辑:程序博客网 时间:2024/04/29 11:33
静态链表的建立:
#include <stdio.h>struct student{int number;float score;struct student *next;}; //结点的定义int main(){struct student *head,*p,a,b,c;a.number=1234,a.score=90.5;b.number=1235,b.score=80.9;c.number=1238,c.score=97.6;head=&a,a.next=&b,b.next=&c,c.next=NULL,p=head;do //输出此静态链表{printf("%ld,%6.2f\n",p->number,p->score); p=p->next;} while(head!=NULL);return 0;}静态链表较为简单,只需注意指针域的链接,最后一个指针为空指针。在依次输出链表就行了
单向动态链表:
#include <stdio.h>#include <stdlib.h>#define LEN sizeof(struct student) struct student { int num; float score; struct student *next; }; //节点的定义 struct student* creat(void) //编写创建动态链表的函数 { struct student *p1,*p2,*head; p1=p2=(struct student*)malloc(LEN); scanf("%d %f",&p1->num,&p1->score); head=p1; while(p1->num) { p2->next=p1; //A line p2=p1; //B line p1=(struct student*)malloc(LEN); scanf("%d %f",&p1->num,&p1->score); } p2->next=NULL; return (head); //返回值为创建的动态链表的头指针 }int main(){ struct student *pt,*p; pt=creat(); p=pt; if(p!=NULL) do //输出动态链表 { printf("%d %5.1f\n",p->num,p->score); p=p->next; }while(p!=NULL); return 0;}
A和B行的位置很关键,若放在scanf的后面,输出链表的时候就会把 0 0给输出来了,因此要放在前面。 建立动态链表的返回值是一个指针,指向结构体的指针。
构建好了后,再输出链表就行了,方法和静态链表的输出方法一样。
- 简单静态、动态链表的建立
- 二叉树的建立,从动态二叉链表转化为静态二叉链表
- linux学习 建立静态库,动态库,写简单的makefile
- linux学习 建立静态库,动态库,写简单的makefile
- 静态库和动态库的建立
- 数据结构 静态链表的建立
- 简单链表的建立
- 简单链表的建立
- 简单静态链表与简单动态链表
- 简单的动态数组的建立
- C语言_动态链表的简单建立与节点删除
- 静态邻接表的建立
- 建立动态链表
- 动态建立链表
- 建立动态链表
- 动态链表的建立—尾插法
- 【c++程序】动态链表的建立
- 简单的静态链表
- Nginx 源码分析-- 浅谈对模块module 的基本认知
- 数据迁移思路-varchar2转date
- Android平台Home键处理机制
- RTSP测试地址
- POJ 2104 - K-th Number 划分树初步(不能有相同元素)
- 简单静态、动态链表的建立
- 标准C++中的string类的用法总结
- 收藏的链接
- 在Android开发中使用Ant 三:批量打包
- POJ 3729 Facer’s string (后缀数组 两串后缀的LCP为K的对数)
- 【 java 】 telnet默认路由 获取拨号信息~
- iOS学习笔记04—socket通信
- 九度OJ-1003
- MFC 中的Winmain