3个回答
展开全部
给你个例子吧
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
struct Node{
int data;
struct Node * next;
};
/*创建链表*/
Node * Create()
{
int n=-1;
Node *head,*p1,*p2;
p1=new Node;
printf("请输入数据");
scanf("%d",&p1->data);
head=NULL;
while(p1->data!=-1)
{
if(n==-1)
{
head=p1;
}
else
p2->next=p1;
p2=p1;
p1=new Node;
scanf("%d",&p1->data);
n++;
}
p2->next=NULL;
return head;
}
/*显示链表*/
void Show(Node * head)
{
Node *p1;
p1=head;
while(p1!=NULL)
{
printf("%d\n",p1->data);
p1=p1->next;
}
}
/*删除链表中元素*/
int del(Node *head,int p)
{
Node * tmp=head;
for(int i=0;i<p;i++)
{
if(tmp==NULL)
return -1;
if(i<p-1)
tmp=tmp->next;
}
int ret=tmp->next->data;
tmp->next=tmp->next->next;
return ret;
}
/*插入链表元素*/
void insert(Node * head,int p,int x)
{
Node * tmp=head;
for(int i=0;i<p;i++)
{
if(tmp==NULL)
return ;
if(i<p-1)
tmp=tmp->next;
}
Node *tmp2=new Node;
tmp2->data=x;
tmp2->next=tmp->next;
tmp->next=tmp2;
}
int _tmain(int argc, _TCHAR* argv[])
{
Node *p;int locnum,data;
char choicenum;
while(true)
{
printf("*****************学生信息管理系统*****************\n");
printf("a.创建学生链表\n");
printf("b.插入学生信息\n");
printf("c.删除学生信息\n");
printf("d.显示学生信息\n");
printf("e.退出\n");
printf("**************************************************\n");
printf("请输入您选择的功能代号\n");
scanf("%c",&choicenum);
if(choicenum=='a')
{
p=Create();
}
else if(choicenum=='b')
{
printf("请输入要插入数据的位置\n");
scanf("%d",&locnum);
printf("请输入插入的数据");
scanf("%d",&data);
insert(p,locnum,data);
}
else if(choicenum=='c')
{
printf("请输入要删除数据的位置\n");
scanf("%d",&locnum);
del(p,locnum);
}
else if(choicenum=='d')
{
printf("学生信息:");
Show(p);
}
else if(choicenum=='e')
{
break;
}
else
{
printf("请输入正确的序号\n");
}
}
return 0;
}
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
struct Node{
int data;
struct Node * next;
};
/*创建链表*/
Node * Create()
{
int n=-1;
Node *head,*p1,*p2;
p1=new Node;
printf("请输入数据");
scanf("%d",&p1->data);
head=NULL;
while(p1->data!=-1)
{
if(n==-1)
{
head=p1;
}
else
p2->next=p1;
p2=p1;
p1=new Node;
scanf("%d",&p1->data);
n++;
}
p2->next=NULL;
return head;
}
/*显示链表*/
void Show(Node * head)
{
Node *p1;
p1=head;
while(p1!=NULL)
{
printf("%d\n",p1->data);
p1=p1->next;
}
}
/*删除链表中元素*/
int del(Node *head,int p)
{
Node * tmp=head;
for(int i=0;i<p;i++)
{
if(tmp==NULL)
return -1;
if(i<p-1)
tmp=tmp->next;
}
int ret=tmp->next->data;
tmp->next=tmp->next->next;
return ret;
}
/*插入链表元素*/
void insert(Node * head,int p,int x)
{
Node * tmp=head;
for(int i=0;i<p;i++)
{
if(tmp==NULL)
return ;
if(i<p-1)
tmp=tmp->next;
}
Node *tmp2=new Node;
tmp2->data=x;
tmp2->next=tmp->next;
tmp->next=tmp2;
}
int _tmain(int argc, _TCHAR* argv[])
{
Node *p;int locnum,data;
char choicenum;
while(true)
{
printf("*****************学生信息管理系统*****************\n");
printf("a.创建学生链表\n");
printf("b.插入学生信息\n");
printf("c.删除学生信息\n");
printf("d.显示学生信息\n");
printf("e.退出\n");
printf("**************************************************\n");
printf("请输入您选择的功能代号\n");
scanf("%c",&choicenum);
if(choicenum=='a')
{
p=Create();
}
else if(choicenum=='b')
{
printf("请输入要插入数据的位置\n");
scanf("%d",&locnum);
printf("请输入插入的数据");
scanf("%d",&data);
insert(p,locnum,data);
}
else if(choicenum=='c')
{
printf("请输入要删除数据的位置\n");
scanf("%d",&locnum);
del(p,locnum);
}
else if(choicenum=='d')
{
printf("学生信息:");
Show(p);
}
else if(choicenum=='e')
{
break;
}
else
{
printf("请输入正确的序号\n");
}
}
return 0;
}
展开全部
/** *时间:2010年8月28日17:19:49 *功能:C语言实现单链表的建立、输入、插入、删除、查找元素并返回位置 */ #include"stdio.h" #include"stdlib.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上讲的挺详细的,给个邮箱 发你份PPT吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询