以下为“构造从头部插入的、指定节点数的链表”的简单示例:
1. 用c语言实现的版本
#include<stdio.h>
#include<stdlib.h>
typedef char datatype;
typedef struct node{
datatype data;
struct node *next;
} listnode;
typedef listnode *linklist;
listnode *p;
//创建在头部插入新元素的链表
linklist createlist(int n)
{
int i;
linklist head = NULL;
listnode *p;
for (i = 0; i <n ; ++i)/* 指定长度为n,插入次数受限制 */
{
printf("请输入第%d个字符:\n", i+1);
p = (listnode*)malloc(sizeof(listnode));
getchar();
scanf("%c", &p->data);
p->next = head; //在链表的头部插入元素
head = p;
}
return(head);
}
void main()
{
int n;
printf("Printf input the num: \n");
scanf("%d", &n);
//创建在头部插入新元素的链表
linklist newlist = createlist(n);
printf("从头结点开始输出链表元素的值:\n");
do
{
printf("%c", newlist->data);
newlist = newlist->next;
} while (newlist != NULL);
printf("\n");
}
运行结果如下所示: