| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 398 人关注过本帖
标题:谁给我看看那错了??
取消只看楼主 加入收藏
向阳的水仙
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2009-10-17
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:1 
谁给我看看那错了??
一个线性链表分割成为三个循坏链表 问题
原题目:已知由一个线性链表表示中含有三类字符的数据元素(如:字母字符、数字字符和其他字符),试编写程序将该线性链表分割成为三个循坏链表,其中每个循坏链表表示的线性表中均只含一类字符。

#include <stdio.h>
#include <malloc.h>
#include <ctype.h>




typedef struct LNode
{
    char data;
    struct LNode * next;
}LNode,*LinkList;



void CreateList_L(LinkList &L,int n)
{
    int i;
    LinkList P;
    L=(LinkList )malloc(sizeof(LNode));
    L->data=0;
    L->next=NULL;

    for(i=0;i<n;i++)
    {
        P=(LinkList)malloc(sizeof(LNode));
        scanf("%c",&P->data);
        getchar();
        P->next=L->next;
        L->next=P;
   
    }
}


void CreateList_C(LinkList &L)
{


    L=(LinkList)malloc(sizeof(LNode));

    L->next=L;


}

void LinkList_Divide(LinkList &L,LinkList &A,LinkList &B,LinkList &C)
{
    LinkList p,q,r,s;
   
    s=L->next;
  A=(LinkList)malloc(sizeof(LNode));p=A;
  B=(LinkList)malloc(sizeof(LNode));q=B;
  C=(LinkList)malloc(sizeof(LNode));r=C;
  while (s)
    {

     
        if ( isalpha (s->data) )
        {
            p->next=s;
            p=s;

        }
        else if ( isdigit (s->data) )
        {
           q->next=s;
           q=s;
        }
        else
        {
            r->next=s;
            r=s;
        }

    }

    p->next=A;
    q->next=B;
    r->next=C;
}


void main()
{
    LinkList L,A,B,C,P,q;
    CreateList_L(L,5);


        do
    {
        P=L->next;
        
    printf("%c ",P->data);
L=L->next;
    }while(L->next!=NULL);
    printf("\n");



    CreateList_C(A);
    CreateList_C(B);
    CreateList_C(C);
    LinkList_Divide(L,A,B,C);




P=A->next;
while(P!=A)
{
    printf("%c ",P->data);
    P=P->next;

}
printf("\n");

P=B->next;
do
    {
   
        
    printf("%c ",P->data);
    P=P->next;
    }while(P->next!=B);
printf("\n");


P=C->next;
do
    {
   
    printf("%c ",P->data);
    P=P->next;
    }while(P->next!=C);
printf("\n");



}

[ 本帖最后由 向阳的水仙 于 2010-10-13 21:19 编辑 ]
搜索更多相关主题的帖子: 编写程序 include 线性表 元素 字母 
2010-10-13 21:11
向阳的水仙
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2009-10-17
收藏
得分:0 
回复 2楼 遮天云
谢谢,知道那错了,看了你的之后发现是链表建错了
2010-10-14 15:54
快速回复:谁给我看看那错了??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.072338 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved