链式存储结构线性表实例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void display()
/*字母链表的输出*/
藤摸瓜”输出*/
{p=head; while (p->next!=NULL) /* 只要没到最后一个元素,就不停地“顺 {printf("%c",p->data); p=p->next; sum ++; } //别忘记输出尾结点数据 printf(“%c\n”,p->data); } void main() {creat(); display(); } 讨论:要统计链表中数据元素的个数,该如何改写?
Biblioteka Baidu
//2--字母链表的生成。要一个一个慢慢链入 void creat() { int i; head=(LinkList)malloc(m); //m前面已求出 p=head; for(i=1;i<26;i++) //因尾结点要特殊处理,故i≠26 { p->data=i+‘a’-1; // 第一个结点值为字符a p->next=(LinkList)malloc(m); //为后继结点开新空间! p=p->next;} //让指针变量P改为指向后继结点 p->data=‘z’; //最后一个元素要单独处理 p->next=NULL ;} //单链表尾结点的指针域要置空! 新手特别容易忘记!!
实例:用单链表结构来存放26个英文字母组成的线性表 (a,b,c,…,z),请写出C语言程序。 //1--将类型定义,全局变量及函数提前说明: #include<stdio.h> #include<stdlib.h> typedef char ElemType; //此时的数据域为char型 typedef struct LNode { ElemType data; struct LNode*next;} Lnode, *LinkList; Lnode *p,*q,*head; //一般需要3个指针变量 int n ; // 数据元素的个数 int m=sizeof(Lnode); /*结构类型定义好之后,每个变量的长 度就固定了,m求一次即可*/