我想尝试链表的插入功能。函数保存记录数组和链接数组。例如;
head=0
string[0]="Angel" linked[0]=1
string[1]="Cesar" linked[1]=2
string[2]="Eduardo" linked[2]=3
string[3]="Pamela" linked[3]=-1/*-1 element does not show*/
头是 Angel,Angel 显示的是 Eduardo。如果添加元素 Denial,string[4]=Denial linked[4]=2 Denial 显示 Eduardo.Attention :---->>string[1]="Cesar"linked[1]=4 链接数组已更新。
我在此函数中遇到一些错误。(无法添加元素。)一点帮助
#define SIZE 10
int main()
{
int linked[SIZE]={3,0,4,-1,1};
char *str[]={"Ellian","Calanthe","Adela","Gardenia","Barbara",NULL};
return 0;
}
void list(int arr[],int head,int linky[]){
int adr=head;
while(adr!=-1){
puts(arr[adr]);
adr=linky[adr];
}
}
void insert(int arrr[],int head,int linky[],char element){
int k,N=0,prev,next;
for(k=0;arrr[k]<NULL;k++)
N++;
arrr[N]=element;
if(element>arrr[head])
{
prev=head;
next=linky[head];
while((next!=-1) && (arrr[next]<element)){
prev=next;
next=linky[next];
}
linky[prev]=N;
linky[N]=next;
}
else{
linky=head;
head=N;
}
N++;
listele(arr,N,linky);
}
最佳答案
替换
#define SIZE 10
由
int size = 10;
并替换
void insert(char str[],int link[],int size,int first)
由
void insert(char str[],int link[],int& size,int& first)
开始。仍然可能行不通,但至少现在你所做的事情实际上做了你想让他们做的事情
关于c - 链表插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22992322/