
C语言如何建立一个列表,编程怎么编,举例说一下,谢谢啦
2个回答
展开全部
首先定义一个链表。
struct node
{
int id;
struct node * next;
};
接下来写一些操作的函数(插入,删除等等)。
插入函数:
struct node* insert(struct node* pNode, int iTemp)
{
//判断 pNode 是否为空。
if(pNode==NULL)
{
//这个节点是空,返回错误。
return NULL;
}
// 创建一个新的节点。
struct node* tempNode = (struct node*)malloc(sizeof(struct node));
tempNode->id= iTemp;
if(pNode->next == NULL)
{
pNode->next = tempNode;
tempNode->next = NULL;
}else
{
struct node * pNext = pNode->next;
pNode->next = tempNode;
tempNode->next = pNext;
}
return tempNode;
}
int main()
{
struct node* head = (struct node*)malloc(sizeof(struct node));
head->id = 0;
head->next = NULL;
struct node * ptemp;
ptemp = head;
for( int i=1; i<10; i++)
{
struct node* temp = insert(ptemp,i);
ptemp = temp;
}
return 0;
}
struct node
{
int id;
struct node * next;
};
接下来写一些操作的函数(插入,删除等等)。
插入函数:
struct node* insert(struct node* pNode, int iTemp)
{
//判断 pNode 是否为空。
if(pNode==NULL)
{
//这个节点是空,返回错误。
return NULL;
}
// 创建一个新的节点。
struct node* tempNode = (struct node*)malloc(sizeof(struct node));
tempNode->id= iTemp;
if(pNode->next == NULL)
{
pNode->next = tempNode;
tempNode->next = NULL;
}else
{
struct node * pNext = pNode->next;
pNode->next = tempNode;
tempNode->next = pNext;
}
return tempNode;
}
int main()
{
struct node* head = (struct node*)malloc(sizeof(struct node));
head->id = 0;
head->next = NULL;
struct node * ptemp;
ptemp = head;
for( int i=1; i<10; i++)
{
struct node* temp = insert(ptemp,i);
ptemp = temp;
}
return 0;
}
更多追问追答
追问
那怎么知道一个列表的长度呢,比如说一个长度为10的列表,最好详细一点
追答
从链表的头开始,计算。
int LengthOf(struct node * pHead)
{
int i =0;
struct node* head = pHead;
while(head!=NULL)
{
head = head->next; //
i++;
}
return i;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询