收藏 分销(赏)

线性表的建立与遍历.doc

上传人:天**** 文档编号:4115869 上传时间:2024-07-30 格式:DOC 页数:6 大小:28.04KB 下载积分:6 金币
下载 相关 举报
线性表的建立与遍历.doc_第1页
第1页 / 共6页
线性表的建立与遍历.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
目录 一、实验题目 2 二、实验流程图 2 三、实验程序清单 5 四、实验验证数据 9 五、实验体会 10 实验一 线性表的建立与遍历 一、实验题目 1、给定一个输入序列,建立顺序表,访问输出顺序表中各结点的内容。 2、给定一个输入序列,建立线性链表,访问输出线性链表中各结点的内容。 二、实验流程图 1、顺序表的建立流程图 图1。1输入流程图 图1.2输出流程图 2、①链表头插法的建立及链表的输出 图1。3 链表输出 图1.4 头插法建立链表 ②尾插法建立 图1.5尾插法建立 三、实验程序清单 1、/*顺序表的建立及遍历*/ #include <stdio.h〉 typedef struct{ int data[100]; int length; }Seqlist; void creat(Seqlist &L); void show(Seqlist L); int main() { Seqlist L; L。length=0; creat(L); show(L); return 0; } void creat(Seqlist &L) { int a; printf("请输入要创建的元素的个数:\t”); scanf("%d",&a); for(int i=0;i<a;i++) { printf("请输入第%d个元素\t",i+1); scanf(”%d”,&L.data[i]); L。length++; } } void show(Seqlist L) { int i; printf("线性表中的元素为:\n”); for(i=0;i<L。length;i++) printf("%d\t",L.data[i]); printf(”\n”); } 2、 ①/*头插法链表的建立*/ #include <stdio。h> #include 〈stdlib。h> typedef struct node { char data; struct node *next; }JD; JD *CreateList_Front(); int main() { JD *head,*p; head=CreateList_Front(); p = head; while(p != NULL) { printf("%c ", p->data); p = p-〉next; } printf("\n”); } JD *CreateList_Front() {JD *head, *p; char ch; head = NULL; printf(”依次输入字符数据(‘#’表示输入结束):\n”); ch = getchar(); while(ch != ’#’) { p = (JD*)malloc(sizeof(JD)); p->data = ch; p—〉next = head; head = p; ch = getchar(); } return head; } ②/*链表尾插法建立及遍历*/ #include <stdio.h〉 #include <stdlib.h〉 typedef struct link { char data; struct link *next; }linklist; linklist *CreateList_End(); //尾插法创建单链表 void ShowLinklist(linklist *h); //输出显示链表 int main(void) { int choice; linklist *head; //head = (linklist*)malloc(sizeof(linklist)); while(1) { printf("单链表的创建\n"); printf("1.使用带头结点的尾插法创建单链表"); printf(” "); printf(”2。链表输出显示 "); printf(" "); printf("3。退出\n”); printf("做出选择:\n”); scanf(”%d”,&choice); switch(choice) { //尾插法 case 1: head = CreateList_End(); break; //输出链表 case 2: ShowLinklist(head); break; //退出程序 case 3: return 0; break; default: break; } } return 1; } linklist *CreateList_End() { char ch; linklist *head, *s, *r; head = (linklist*)malloc(sizeof(linklist)); r=head; printf("请依次输入字符数据(’#'表示输入结束):\n”); ch = getchar(); while(ch != ’#') { s = (linklist*)malloc(sizeof(linklist)); s->data = ch; r—〉next=s; r=s; ch=getchar(); } r-〉next = NULL; return head; } void ShowLinklist(linklist *h) { linklist *s; s = h; while(s != NULL) { printf(”%c ", s-〉data); s = s->next; } printf(”\n"); } 四、实验验证数据 1、顺序表的建立及输出结果如下: 图1。6 顺序输出 2、链表头插法建立及遍历,结果如下: 图1。7 头插法 3、链表尾插法的建立及遍历,结果如下: 图1。8 尾插法 五、实验体会 通过这次实验的练习,虽然在编程的过程中出现的一些小的错误,例如变量未定义,但是在自己不断的修正下,结果不断完善。通过这次实验让我更加明白一个顺序表怎么建立,先大体上估计一个数组的大小,自己来确定这个顺序表的长度,然后进行输出。在链表实验中还做了头插法和尾插法建立及遍历链表,通过实验结果可以更加明白,插法建立链表输出结果是逆序的,而尾插法建立链表输出结果是正序.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服