不要怀疑这个论坛的高手 他们不屑回答这么幼稚的问题 你自己没有用做好 就不要怀疑别人也没有学好
本人不才,给你个单链表的程序 在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;
}