是用C还是C++?
你没说的话,只能给你个参考程序!#include
using namespace std;
typedef char ElemType;
typedef int Status;
#define OK 1
#define ERROR 0
typedef struct Lnode
{
ElemType data;
struct Lnode *next;
}Lnode,*LinkList;
void Creat_List(LinkList L)//创建单链表并输入元素
{
LinkList p;
char ch;
cout<
while(cin>>ch&&ch!='#')
{
p=(LinkList)malloc(sizeof(Lnode));
if(!p)
{
cout<
exit(ERROR);
}
p->data=ch;//尾插法
L->next=p;
L=p;
}
L->next=NULL;
}
void output_List(LinkList L)//遍历单链表(输出单链表元素)
{
LinkList p;
p=L->next;
if(p==NULL)
{
cout<
exit(ERROR);
}
while(p!=NULL)
{
cout<data<
p=p->next;
}
}
void List_Delete(LinkList L,int i)//删除指定位置的元素
{
LinkList q;
if(i<1)
{
cout<
exit(ERROR);
}
int j=0;
while(L!=NULL&&j
{
L=L->next;
j++;
}
if(L->next==NULL)
{
cout<
exit(ERROR);
}
q=L->next;
L->next=q->next;
free(q);
}
void List_Inster(LinkList L,int i,ElemType e)//在指定位置插入元素
{
LinkList s;
int j=0;
while(L!=NULL&&j
{
L=L->next;
j++;
}
if(!L||j>i-1)
{
cout<
exit(ERROR);
}
s=(LinkList)malloc(sizeof(Lnode));
s->data=e;
s->next=L->next;
L->next=s;
}
Status main()
{
LinkList H;
H=(LinkList)malloc(sizeof(Lnode));
H->next=NULL;
Creat_List(H);
output_List(H);
int n;
cout<
cin>>n;
List_Delete(H,n);
cout<
output_List(H);
cout<
ElemType m;
cin>>n>>m;
List_Inster(H,n,m);
output_List(H);
return 0;
}