文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>使用链表对字符串进行操作【C/数据结构】

使用链表对字符串进行操作【C/数据结构】

时间:2010-05-31  来源:advancing

《数据结构》课程实习(程序实现采用C语言)

 

//题目:编写一个读入一个字符串,把它存入一个链表,并按相反的次序打印的程序。

 

 

#include<stdio.h>
#include<malloc.h> /*头文件定义*/
#define LEN sizeof(struct zfc) /*宏定义*/

/***************************************************************************/
/*定义一个结构体,作为链表的结点*/
/***************************************************************************/
struct zfc
{
    char word; /*记录数据*/
    struct zfc * next; /*结构型指针*/
};
/*end struct*/


/*定义creat()函数,开辟节点,构建链表*/
struct zfc * creat()
{
    struct zfc * head; /*定义头指针*/
    struct zfc * p1,* p2; /*定义两个结构体型的指针*/
    p1=p2=(struct zfc *)malloc(LEN); /*开辟一个新单元*/
    printf("\nPlease enter the string:\n");
    scanf("%c",&p1->word); /*输入数据并存入结点,并应用堆栈的技术,将其作为尾节点*/
    p1->next=NULL; /*为尾节点指针数据赋值NULL*/
    while(p1->word!='#') /*将 #作为结束标志 */
    {
            p1=(struct zfc *)malloc(LEN); /*p1作为先头节点指针,往前开辟空间*/
            p1->next=p2; /*循环将后一个节点的地址(p2)赋值给p1的指针域*/
            scanf("%c",&p1->word); /*再次接受输入的数据*/
            p2=p1; /*p2作为p1的追随指针,起记忆作用 */
    }
    p1->word=NULL; /*清除p1数据域的数据#,作为头指针用*/
    head=p1; /*定义头节点*/
    return(head); /*本函数返回头指针*/
}
/*end creat()*/


/******************************************************************************/
/*输出链表数据的函数print()*/
/******************************************************************************/
void print(struct zfc *p)
{
    struct zfc *q; /*将函数传进来的头指针赋值给本函数局部的指针q*/
    q=p;
    printf("The reslut is :\n");
    while(q!=NULL) /*输出判断条件*/
    {
        printf("%c",q->word);
        q=q->next; /*指针往后走*/
    }
    printf("\n"); /*换行*/

}
/*end print()*/



/*****************************************************************************/
/*main函数*/
/*****************************************************************************/
void main()
{

    struct zfc *head,*first; /*定义两个指针*/
    printf("\n*********************************************************");
    first=creat(); /*调用creat()函数,创建链表*/    
    head=first->next; /*将头节点的指针域数据赋值给head*/
    print(head); /*输出数据*/
    printf("\nThank you for your attentions!BYE!");
    printf("\n********************************************************");
    getch(); /*屏幕暂留,即停顿*/
}
/*end main()*/
/****************************************************************************/
/*全部结束*/
/*****************************************************************************/


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载