| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 375 人关注过本帖
标题:谁能帮我解答一下(不能解答的问题)??
只看楼主 加入收藏
zhy263033252
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2009-9-21
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:6 
谁能帮我解答一下(不能解答的问题)??
能不能给我帮我把这个程序修改一下
内容就是单链表插入 删除,

初始构表从一到十的位置依次是    a,b,c,d.....直到十个字母
然后插入的内容必须是字母

有大侠能帮我么?我想知道到底这里有没有高手啊


#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

typedef int Status;
typedef int Boolean;
typedef int ElemType;


struct LNode
{
ElemType data;
struct LNode *next;
};typedef struct LNode *LinkList;


Status InitList(LinkList *L)
{
*L=(LinkList)malloc(sizeof(struct LNode));
if(!*L)
  exit(OVERFLOW);
(*L)->next=NULL;
return OK;
}


Status ListInsert(LinkList L,int i,ElemType e)
{
int j=0;
LinkList p=L,s;
while(p&&j <i-1)
{
p=p->next;
j++;
}
if(!p||j>i-1)
return ERROR;
s=(LinkList)malloc(sizeof(struct LNode));
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}


Status ListDelete(LinkList L,int i,ElemType *e)
{
int j=0;
LinkList p=L,q;
while(p->next&&j <i-1)
{
p=p->next;
j++;
}
if(!p->next||j>i-1)
return ERROR;
q=p->next;
p->next=q->next;
*e=q->data;
free(q);
return OK;
}


Status ListTraverse(LinkList L,void(*vi)(ElemType))
{
LinkList p=L->next;
while(p)
{
vi(p->data);
p=p->next;
}
printf("\n");
return OK;
}


void print(ElemType c)
{
printf("%c",c);
}


void main()
{
LinkList La;
Status k;
int i,m;
char j;
k=InitList(&La);
if(k==1)
{
for(i=1;i <=10;i++)
ListInsert(&La,i,98+i);
printf("La= ");
ListTraverse(La,print);
}
}
搜索更多相关主题的帖子: 解答 
2009-09-21 17:45
zhy263033252
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2009-9-21
收藏
得分:0 
把这个程序复制啊
 放在TC里
 帮我找出错误啊
  到底有没有高手啊
2009-09-21 19:02
zhy263033252
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2009-9-21
收藏
得分:0 
各位水平还不是很高啊
 怎么都不能回答我的问题?
2009-09-22 16:04
飞天的猪
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:141
注 册:2009-9-19
收藏
得分:0 
高手还没有在线
2009-09-22 16:09
shuijiashui8
Rank: 2
等 级:论坛游民
帖 子:21
专家分:44
注 册:2009-9-15
收藏
得分:10 
不要怀疑这个论坛的高手 他们不屑回答这么幼稚的问题 你自己没有用做好 就不要怀疑别人也没有学好
本人不才,给你个单链表的程序 在vc++6.0测试过了 不过输入的是字符串,想变成输入字符 就把关于char data[n]换成char data 就可以了
由于我的编译缺少了某些文件 不支持中文的注释就换成拼音了 你应该会拼音吧 不会拼音千万别说大家都不会拼音,那样丢人
提醒一下 下次发问时礼貌点,
自己好好看 就这么个简单的小程序说明了那么多新类型名 你还真厉害
【编译器可能有问题 输入函数必须弄两个,也不知道是怎么回事,用一个不能输入数据 我已经加下划线了】
【如果有高手望给点建议】


#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define  n 3
typedef struct node
{
    char data[n];
    struct node *next;
}listnode;
typedef listnode * linklist;
 
/*=====================jian li lian biao========================*/
listnode* creatlist()
{
     
    char ch[n];
    linklist head;
    listnode *p,*r;
    head=(listnode*)malloc(sizeof(listnode));
    head->next=NULL;
    r=head;
    scanf("%s",ch);
    while(strcmp(ch,"@")!=0)
    {
        p=(listnode*)malloc(sizeof(listnode));
        if(p==NULL)
            break;
        strcpy(p->data,ch);
        r->next=p;
        r=p;
        scanf("%s",ch);
    }
    r->next=NULL;
    return head;
}
/*=========================shu chu han shu=======================*/
void showlist(listnode* head)
{
    listnode *p;
    p=head->next;
    while(p)
    {     
        printf("  %s  \n",p->data);
        p=p->next;
    }
}
/*========================cha zhao jie dia han shu*/
listnode *getnode(listnode* head,int i)
{
    int j=0;
    listnode *p;
    p=head;
    while(p->next&&j<i)
    {
        p=p->next;
        j++;
    }
    if(j==i)
        return p;
    else  
        return NULL;
 
}
/*======================shan chu han shu=========================*/
void dele(listnode *head,int i)
{
    listnode*p,*r;
    p=getnode(head,i-1);
    r=p->next;
    p->next=r->next;
    free(r);
}
 
/*========================cha ru han shu=========================*/
void insertlist(listnode *head,char ch[],int i)
{
    int j=0;
    listnode *p,*s;
    p=getnode(head,i-1);
    if(p==NULL)
        printf("error position \n");
         
    s=(listnode*)malloc(sizeof(listnode));
    strcpy(s->data,ch);
    s->next=p->next;
    p->next=s;
 
}
/*====================zhu han shu================================*/
int main(int argc, char* argv[])
{
    int i,j;
    char ch,data[n];
    listnode *head;
    head=creatlist();
     
    printf("a========show ==========\n");
    printf("b========insert ==========\n");
    printf("c========dele ==========\n");
    printf("d========exit==========\n");
    printf("please choice your operate:\n");
    scanf("%c",&ch);scanf("%c",&ch);
    while(ch!='d')
    {
       if(ch=='a')showlist(head);
       if(ch=='b')
       {
        printf("input insert position: \n");
        scanf("%d\n",&i);
        printf("input insert data: \n");
        scanf("%s",data);
        insertlist(head,data,i);
       }
      if(ch=='c')
      {
          printf("input delete position\n");
          scanf("%d",&j);
          dele(head,j);
      }
      
    printf("a========show ==========\n");
    printf("b========insert ==========\n");
    printf("c========dele ==========\n");
    printf("d========exit==========\n");
    printf("please choice your operate:\n");
    scanf("%c",&ch);scanf("%c",&ch);
    }
     
     
    return 0;
}
2009-09-22 17:07
zhy263033252
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2009-9-21
收藏
得分:0 
回复 4楼 飞天的猪
你是不??
2009-09-22 19:11
zhy263033252
Rank: 1
等 级:新手上路
帖 子:12
专家分:2
注 册:2009-9-21
收藏
得分:0 
回复 5楼 shuijiashui8
你的程序太猛了
  别人告诉了我一个非常容易的
 其实我的那个差不了多少
 就是程序名加了一个&
  所以就误事了...
2009-09-22 19:12
快速回复:谁能帮我解答一下(不能解答的问题)??
数据加载中...
 
   



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

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