1 / 46
文档名称:

数据结构与算法.pdf

格式:pdf   大小:327KB   页数:46页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构与算法.pdf

上传人:iris028 2022/5/14 文件大小:327 KB

下载得到文件列表

数据结构与算法.pdf

相关文档

文档介绍

文档介绍:: .

typedef struct node /*定义结点类型的数据结构*/
{
char c; /*数据域,类型为字符型*/
struct node *next; /*指针域,类型为本结构体类型*/
}*L; /*类型重定义,即 Node 和*L 和 struct node 等价*/

main()
{
L l,p,q; /*用指针类型定义三个结点类型的指针*/
char ch;
int n;
l=(L)malloc(sizeof(L)); /*分配内存空间*/
l->c='\0'; /*为头结点的数据域赋值,值为空*/
l->next=NULL; /*指明下一个结点目前不存在*/
q=l; /*q为游动指针,链表结点的连结要用*/
printf("Input a character:\n");
scanf("%c",&ch);
getchar();
while(ch!='!') /*输入!表示输入结束*/
{
p=(L)malloc(sizeof(L)); /*为新输入的数据分配内存空间*/
p->c=ch;
p->next=NULL; /*新输入的结点在链表的最后,即它的后
面没有其它元素*/
q->next=p; /*q用于将上一个元素链接至当前新元素*/
q=p; /*q 自己移到当前最后一个元素,以备继续链接
所用*/
scanf("%c",&ch);
getchar();
}
q=l; /*输入整个链表前,先将 q 移到链表头,l 一般不动*/
while(q->next!=NULL) /*若 q 所指向的元素后面还有其它元素,则
将该元素的数据输出*/
{
printf("%c-->",q->next->c); /*q->next->c表示 q 所指向的下一个元素
第 3/46页的数据*/
q=q->next; /*完成该元素的输出后,q 移至下一个元素重复
输出操作*/
}

/*--------以上为建立一个单链表-------------*/


printf("\nInput a character you wanna find\n");
scanf("%c",&ch);
printf("\nthe character you wanna find is %c\n",ch);
q=l->next; /*q移至头结点的后一个元素,即实际第一个数据点*/
n=1; //位置计数器
while(q!=NULL) /*若 q 不为空,即该结点存在*/
{
if(q->c==ch) /*字符匹配*/
printf("character found in position %d\n",n);
q=q->next; /*移至下一个元素继续查找*/
n++;
}
}


//All copyright are preserved bycobby
/*元素插入操作*/

#define NULL 0 /*宏定义*/
typedef struct node /*定义结点类型的数据结构*/
{