| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 481 人关注过本帖
标题:[求助]这个程序能运行但是操作实现不了,怎么回事?
只看楼主 加入收藏
xxyshow115
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-6-4
收藏
 问题点数:0 回复次数:1 
[求助]这个程序能运行但是操作实现不了,怎么回事?

#include "stdio.h"
#include "iostream.h"
#include "malloc.h"
struct LINKLIST
{
int data;
struct LINKLIST *head,*last,*next;
};

int choose;


/******************************/
/* 按序号查找 */
/******************************/

struct LINKLIST * get(int i, struct LINKLIST *head)
{
int j;
struct LINKLIST * p;
p=head;
while((j<i)&&(p->next!=NULL))
{
p=p->next;
j++;
}
if(j==i)
return p;
else
return NULL;
}
/******************************/
/* 按值查找 */
/******************************/

struct LINKLIST *locate(int x,struct LINKLIST *head)
{
struct LINKLIST *p;
p=head->next;
while(p!=NULL)
if(p->data==x)
return p;
else
p=p->next;
return NULL;
}
/******************************/
/* 在以知结点的后面插入新结点 */
/******************************/

void insertafter(int x,struct LINKLIST *p)
{
struct LINKLIST *t;
t=(struct LINKLIST *)malloc(sizeof(struct LINKLIST));
t=p->next;
p->next=t;
}
/******************************/
/* 在以知结点的前面插入新结点 */
/******************************/

int insertbefor(int x,int i,struct LINKLIST *head)
{
LINKLIST *p;
int r=1;
p=get(i-1,head);
if(p!=NULL)
insertbefor(x,i,p);
else
r=0;
return r;
}
/******************************/
/* 删除第i个结点 */
/******************************/

int deleteordor(int i,struct LINKLIST *head)
{
struct LINKLIST *p;
int r=1;
p=get(i-1,head);
if((p!=NULL)&&(p->next!=NULL))
deleteordor(i,p);
else
r=0;
return r;
}
void main()
{
printf("*********************************************\n");
printf("*************单向循环链表的操作**************\n");
printf("*********************************************\n");

printf("首先,请输入链表,以$结束\n");
struct LINKLIST *head,*last,*t;
char ch;
t=(struct LINKLIST *)malloc(sizeof(struct LINKLIST)); //建立表头结点
head=t;
last=t;
t->next=NULL;
while(ch=getchar()!='$')
{
t=(struct LINKLIST *)malloc(sizeof(struct LINKLIST));
t->data=ch;
last->next=t;
last=t;
t->next=head;
}

printf("现在,请选择您要的操作: \n");
printf("1..............................按序号查找 \n");
printf("2..............................按值查找 \n");
printf("3..............................在以知结点的后面插入新结点\n");
printf("4..............................在以知结点的前面插入新结点\n");
printf("5..............................删除第i个结点 \n");

printf("请输入您要进行的操作:\n");
scanf("%d",&choose);
while(choose!=1&&choose!=2&&choose!=3&&choose!=4&&choose!=5)
{ printf(" 错误数字! ");
scanf("%d",&choose);
}
while(choose==1||choose==2||choose==3||choose==4||choose==5)
{ switch(choose)
{
case 1:struct LINKLIST * get(); break;
case 2:struct LINKLIST *locate(); break;
case 3:void insertafter(); break;
case 4:int insertbefor(); break;
case 5:int deleteordor(); break;
}
printf("请输入您要进行的操作:\n");
scanf("%d",&choose);
}

}

搜索更多相关主题的帖子: include 
2007-06-10 14:23
xxyshow115
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-6-4
收藏
得分:0 
大部分操作函数来自nuciewth
非常感谢他

没什么的 没什么的 寂寞这东西 习惯了 就好了 就这样了
2007-06-10 14:25
快速回复:[求助]这个程序能运行但是操作实现不了,怎么回事?
数据加载中...
 
   



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

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