1.初始化
<span style="font-family:KaiTi_GB2312;font-size:18px;">//建立一个空的单链表 LinkList InitiateLinkList( ) { LinkList head; //头指针 head = malloc(sizeof(node)); //动态构建一个节点,它是头结点 head ->next = NULL; return head; }</span>
2.求表长
//求单链表表head的长度 int LentghLinklist ( LinkList head ) { Node * p = head; //p是工作指针,初始时p指向头结点 int cnt = 0; //计数器置初值 while(p->next != NULL) //判断是否为尾节点 { p = p->next; //指针移动到下一个节点 cnt ++; } return cnt; }
3.读表元素
//在单链表head中查找第i个元素节点,若找到,则返回指向该节点的指针,否则返回NULL Node * GetLinklist(LinkList head,int i) { Node *p; //p是工作指针 p = head ->next; //初始时p指向头结点 int c = 1; while ( (c<i) && (p != NULL) ) //当未到第i结点且未到尾节点时继续后移 { p = p->next; c++; } if ( i == c ) return p; //找到第i个节点 else return NULL; //i<1 或 i>n ,i值不合法,查找失败 }4.定位
<pre name="code" class="cpp">//求表head中第一个值等于x的结点的序号,若不存在这种结点,返回结果为0 int LocateLinklist( LinkList head,DataType x) { Node * p = head; //p是工作指针 p = p->next; //初始时p指向首结点 int i=0; //i代表结点的序号,这里置初值为0
while (p!= NULL && p->data !=x) //访问链表 { i++; p = p->next; } if (p!= NULL ) return i+1; else return 0; }
5.插入
6.删除
原文链接:https://www.f2er.com/datastructure/382426.html